Files
genqlient/generate/testdata/snapshots/TestGenerate-ComplexInlineFragments.graphql-ComplexInlineFragments.graphql.go
T
Craig Silverstein e3227388fe Rename the query constant to have an underscore in it. (#241)
We got reports of conflicts with the old constant-name and symbols that
people were defining in their app.
2022-11-22 14:12:38 -08:00

1458 lines
56 KiB
Go

// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
package test
import (
"encoding/json"
"fmt"
"github.com/Khan/genqlient/graphql"
"github.com/Khan/genqlient/internal/testutil"
)
// ComplexInlineFragmentsConflictingStuffArticle includes the requested fields of the GraphQL type Article.
type ComplexInlineFragmentsConflictingStuffArticle struct {
Typename string `json:"__typename"`
Thumbnail ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail `json:"thumbnail"`
}
// GetTypename returns ComplexInlineFragmentsConflictingStuffArticle.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffArticle) GetTypename() string { return v.Typename }
// GetThumbnail returns ComplexInlineFragmentsConflictingStuffArticle.Thumbnail, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffArticle) GetThumbnail() ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail {
return v.Thumbnail
}
// ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail includes the requested fields of the GraphQL type StuffThumbnail.
type ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail struct {
Id testutil.ID `json:"id"`
ThumbnailUrl string `json:"thumbnailUrl"`
}
// GetId returns ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail) GetId() testutil.ID {
return v.Id
}
// GetThumbnailUrl returns ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail.ThumbnailUrl, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail) GetThumbnailUrl() string {
return v.ThumbnailUrl
}
// ComplexInlineFragmentsConflictingStuffContent includes the requested fields of the GraphQL interface Content.
//
// ComplexInlineFragmentsConflictingStuffContent is implemented by the following types:
// ComplexInlineFragmentsConflictingStuffArticle
// ComplexInlineFragmentsConflictingStuffTopic
// ComplexInlineFragmentsConflictingStuffVideo
// The GraphQL type's documentation follows.
//
// Content is implemented by various types like Article, Video, and Topic.
type ComplexInlineFragmentsConflictingStuffContent interface {
implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent()
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
GetTypename() string
}
func (v *ComplexInlineFragmentsConflictingStuffArticle) implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent() {
}
func (v *ComplexInlineFragmentsConflictingStuffTopic) implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent() {
}
func (v *ComplexInlineFragmentsConflictingStuffVideo) implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent() {
}
func __unmarshalComplexInlineFragmentsConflictingStuffContent(b []byte, v *ComplexInlineFragmentsConflictingStuffContent) error {
if string(b) == "null" {
return nil
}
var tn struct {
TypeName string `json:"__typename"`
}
err := json.Unmarshal(b, &tn)
if err != nil {
return err
}
switch tn.TypeName {
case "Article":
*v = new(ComplexInlineFragmentsConflictingStuffArticle)
return json.Unmarshal(b, *v)
case "Topic":
*v = new(ComplexInlineFragmentsConflictingStuffTopic)
return json.Unmarshal(b, *v)
case "Video":
*v = new(ComplexInlineFragmentsConflictingStuffVideo)
return json.Unmarshal(b, *v)
case "":
return fmt.Errorf(
"response was missing Content.__typename")
default:
return fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsConflictingStuffContent: "%v"`, tn.TypeName)
}
}
func __marshalComplexInlineFragmentsConflictingStuffContent(v *ComplexInlineFragmentsConflictingStuffContent) ([]byte, error) {
var typename string
switch v := (*v).(type) {
case *ComplexInlineFragmentsConflictingStuffArticle:
typename = "Article"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsConflictingStuffArticle
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsConflictingStuffTopic:
typename = "Topic"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsConflictingStuffTopic
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsConflictingStuffVideo:
typename = "Video"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsConflictingStuffVideo
}{typename, v}
return json.Marshal(result)
case nil:
return []byte("null"), nil
default:
return nil, fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsConflictingStuffContent: "%T"`, v)
}
}
// ComplexInlineFragmentsConflictingStuffTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsConflictingStuffTopic struct {
Typename string `json:"__typename"`
}
// GetTypename returns ComplexInlineFragmentsConflictingStuffTopic.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffTopic) GetTypename() string { return v.Typename }
// ComplexInlineFragmentsConflictingStuffVideo includes the requested fields of the GraphQL type Video.
type ComplexInlineFragmentsConflictingStuffVideo struct {
Typename string `json:"__typename"`
Thumbnail ComplexInlineFragmentsConflictingStuffVideoThumbnail `json:"thumbnail"`
}
// GetTypename returns ComplexInlineFragmentsConflictingStuffVideo.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffVideo) GetTypename() string { return v.Typename }
// GetThumbnail returns ComplexInlineFragmentsConflictingStuffVideo.Thumbnail, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffVideo) GetThumbnail() ComplexInlineFragmentsConflictingStuffVideoThumbnail {
return v.Thumbnail
}
// ComplexInlineFragmentsConflictingStuffVideoThumbnail includes the requested fields of the GraphQL type Thumbnail.
type ComplexInlineFragmentsConflictingStuffVideoThumbnail struct {
Id testutil.ID `json:"id"`
TimestampSec int `json:"timestampSec"`
}
// GetId returns ComplexInlineFragmentsConflictingStuffVideoThumbnail.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffVideoThumbnail) GetId() testutil.ID { return v.Id }
// GetTimestampSec returns ComplexInlineFragmentsConflictingStuffVideoThumbnail.TimestampSec, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsConflictingStuffVideoThumbnail) GetTimestampSec() int {
return v.TimestampSec
}
// ComplexInlineFragmentsNestedStuffArticle includes the requested fields of the GraphQL type Article.
type ComplexInlineFragmentsNestedStuffArticle struct {
Typename string `json:"__typename"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffArticle.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffArticle) GetTypename() string { return v.Typename }
// ComplexInlineFragmentsNestedStuffContent includes the requested fields of the GraphQL interface Content.
//
// ComplexInlineFragmentsNestedStuffContent is implemented by the following types:
// ComplexInlineFragmentsNestedStuffArticle
// ComplexInlineFragmentsNestedStuffTopic
// ComplexInlineFragmentsNestedStuffVideo
// The GraphQL type's documentation follows.
//
// Content is implemented by various types like Article, Video, and Topic.
type ComplexInlineFragmentsNestedStuffContent interface {
implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent()
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
GetTypename() string
}
func (v *ComplexInlineFragmentsNestedStuffArticle) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent() {
}
func (v *ComplexInlineFragmentsNestedStuffTopic) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent() {
}
func (v *ComplexInlineFragmentsNestedStuffVideo) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent() {
}
func __unmarshalComplexInlineFragmentsNestedStuffContent(b []byte, v *ComplexInlineFragmentsNestedStuffContent) error {
if string(b) == "null" {
return nil
}
var tn struct {
TypeName string `json:"__typename"`
}
err := json.Unmarshal(b, &tn)
if err != nil {
return err
}
switch tn.TypeName {
case "Article":
*v = new(ComplexInlineFragmentsNestedStuffArticle)
return json.Unmarshal(b, *v)
case "Topic":
*v = new(ComplexInlineFragmentsNestedStuffTopic)
return json.Unmarshal(b, *v)
case "Video":
*v = new(ComplexInlineFragmentsNestedStuffVideo)
return json.Unmarshal(b, *v)
case "":
return fmt.Errorf(
"response was missing Content.__typename")
default:
return fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsNestedStuffContent: "%v"`, tn.TypeName)
}
}
func __marshalComplexInlineFragmentsNestedStuffContent(v *ComplexInlineFragmentsNestedStuffContent) ([]byte, error) {
var typename string
switch v := (*v).(type) {
case *ComplexInlineFragmentsNestedStuffArticle:
typename = "Article"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffArticle
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsNestedStuffTopic:
typename = "Topic"
premarshaled, err := v.__premarshalJSON()
if err != nil {
return nil, err
}
result := struct {
TypeName string `json:"__typename"`
*__premarshalComplexInlineFragmentsNestedStuffTopic
}{typename, premarshaled}
return json.Marshal(result)
case *ComplexInlineFragmentsNestedStuffVideo:
typename = "Video"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffVideo
}{typename, v}
return json.Marshal(result)
case nil:
return []byte("null"), nil
default:
return nil, fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsNestedStuffContent: "%T"`, v)
}
}
// ComplexInlineFragmentsNestedStuffTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsNestedStuffTopic struct {
Typename string `json:"__typename"`
Children []ComplexInlineFragmentsNestedStuffTopicChildrenContent `json:"-"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffTopic.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopic) GetTypename() string { return v.Typename }
// GetChildren returns ComplexInlineFragmentsNestedStuffTopic.Children, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopic) GetChildren() []ComplexInlineFragmentsNestedStuffTopicChildrenContent {
return v.Children
}
func (v *ComplexInlineFragmentsNestedStuffTopic) UnmarshalJSON(b []byte) error {
if string(b) == "null" {
return nil
}
var firstPass struct {
*ComplexInlineFragmentsNestedStuffTopic
Children []json.RawMessage `json:"children"`
graphql.NoUnmarshalJSON
}
firstPass.ComplexInlineFragmentsNestedStuffTopic = v
err := json.Unmarshal(b, &firstPass)
if err != nil {
return err
}
{
dst := &v.Children
src := firstPass.Children
*dst = make(
[]ComplexInlineFragmentsNestedStuffTopicChildrenContent,
len(src))
for i, src := range src {
dst := &(*dst)[i]
if len(src) != 0 && string(src) != "null" {
err = __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenContent(
src, dst)
if err != nil {
return fmt.Errorf(
"unable to unmarshal ComplexInlineFragmentsNestedStuffTopic.Children: %w", err)
}
}
}
}
return nil
}
type __premarshalComplexInlineFragmentsNestedStuffTopic struct {
Typename string `json:"__typename"`
Children []json.RawMessage `json:"children"`
}
func (v *ComplexInlineFragmentsNestedStuffTopic) MarshalJSON() ([]byte, error) {
premarshaled, err := v.__premarshalJSON()
if err != nil {
return nil, err
}
return json.Marshal(premarshaled)
}
func (v *ComplexInlineFragmentsNestedStuffTopic) __premarshalJSON() (*__premarshalComplexInlineFragmentsNestedStuffTopic, error) {
var retval __premarshalComplexInlineFragmentsNestedStuffTopic
retval.Typename = v.Typename
{
dst := &retval.Children
src := v.Children
*dst = make(
[]json.RawMessage,
len(src))
for i, src := range src {
dst := &(*dst)[i]
var err error
*dst, err = __marshalComplexInlineFragmentsNestedStuffTopicChildrenContent(
&src)
if err != nil {
return nil, fmt.Errorf(
"unable to marshal ComplexInlineFragmentsNestedStuffTopic.Children: %w", err)
}
}
}
return &retval, nil
}
// ComplexInlineFragmentsNestedStuffTopicChildrenArticle includes the requested fields of the GraphQL type Article.
type ComplexInlineFragmentsNestedStuffTopicChildrenArticle struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Text string `json:"text"`
Parent ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic `json:"parent"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetTypename() string {
return v.Typename
}
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetId() testutil.ID { return v.Id }
// GetText returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Text, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetText() string { return v.Text }
// GetParent returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Parent, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetParent() ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic {
return v.Parent
}
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic struct {
Children []ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent `json:"-"`
}
// GetChildren returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic.Children, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) GetChildren() []ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent {
return v.Children
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) UnmarshalJSON(b []byte) error {
if string(b) == "null" {
return nil
}
var firstPass struct {
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic
Children []json.RawMessage `json:"children"`
graphql.NoUnmarshalJSON
}
firstPass.ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic = v
err := json.Unmarshal(b, &firstPass)
if err != nil {
return err
}
{
dst := &v.Children
src := firstPass.Children
*dst = make(
[]ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent,
len(src))
for i, src := range src {
dst := &(*dst)[i]
if len(src) != 0 && string(src) != "null" {
err = __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(
src, dst)
if err != nil {
return fmt.Errorf(
"unable to unmarshal ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic.Children: %w", err)
}
}
}
}
return nil
}
type __premarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic struct {
Children []json.RawMessage `json:"children"`
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) MarshalJSON() ([]byte, error) {
premarshaled, err := v.__premarshalJSON()
if err != nil {
return nil, err
}
return json.Marshal(premarshaled)
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) __premarshalJSON() (*__premarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic, error) {
var retval __premarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic
{
dst := &retval.Children
src := v.Children
*dst = make(
[]json.RawMessage,
len(src))
for i, src := range src {
dst := &(*dst)[i]
var err error
*dst, err = __marshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(
&src)
if err != nil {
return nil, fmt.Errorf(
"unable to marshal ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic.Children: %w", err)
}
}
}
return &retval, nil
}
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle includes the requested fields of the GraphQL type Article.
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Name string `json:"name"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) GetTypename() string {
return v.Typename
}
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) GetId() testutil.ID {
return v.Id
}
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) GetName() string {
return v.Name
}
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent includes the requested fields of the GraphQL interface Content.
//
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent is implemented by the following types:
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo
// The GraphQL type's documentation follows.
//
// Content is implemented by various types like Article, Video, and Topic.
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent interface {
implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent()
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
GetTypename() string
// GetId returns the interface-field "id" from its implementation.
// The GraphQL interface field's documentation follows.
//
// ID is the identifier of the content.
GetId() testutil.ID
// GetName returns the interface-field "name" from its implementation.
GetName() string
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent() {
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent() {
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent() {
}
func __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(b []byte, v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent) error {
if string(b) == "null" {
return nil
}
var tn struct {
TypeName string `json:"__typename"`
}
err := json.Unmarshal(b, &tn)
if err != nil {
return err
}
switch tn.TypeName {
case "Article":
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle)
return json.Unmarshal(b, *v)
case "Topic":
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic)
return json.Unmarshal(b, *v)
case "Video":
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo)
return json.Unmarshal(b, *v)
case "":
return fmt.Errorf(
"response was missing Content.__typename")
default:
return fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent: "%v"`, tn.TypeName)
}
}
func __marshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent) ([]byte, error) {
var typename string
switch v := (*v).(type) {
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle:
typename = "Article"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic:
typename = "Topic"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo:
typename = "Video"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo
}{typename, v}
return json.Marshal(result)
case nil:
return []byte("null"), nil
default:
return nil, fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent: "%T"`, v)
}
}
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Name string `json:"name"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) GetTypename() string {
return v.Typename
}
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) GetId() testutil.ID {
return v.Id
}
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) GetName() string {
return v.Name
}
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo includes the requested fields of the GraphQL type Video.
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Name string `json:"name"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) GetTypename() string {
return v.Typename
}
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) GetId() testutil.ID {
return v.Id
}
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) GetName() string {
return v.Name
}
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic struct {
Name string `json:"name"`
Parent ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic `json:"parent"`
}
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic) GetName() string {
return v.Name
}
// GetParent returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic.Parent, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic) GetParent() ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic {
return v.Parent
}
// ComplexInlineFragmentsNestedStuffTopicChildrenContent includes the requested fields of the GraphQL interface Content.
//
// ComplexInlineFragmentsNestedStuffTopicChildrenContent is implemented by the following types:
// ComplexInlineFragmentsNestedStuffTopicChildrenArticle
// ComplexInlineFragmentsNestedStuffTopicChildrenTopic
// ComplexInlineFragmentsNestedStuffTopicChildrenVideo
// The GraphQL type's documentation follows.
//
// Content is implemented by various types like Article, Video, and Topic.
type ComplexInlineFragmentsNestedStuffTopicChildrenContent interface {
implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent()
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
GetTypename() string
// GetId returns the interface-field "id" from its implementation.
// The GraphQL interface field's documentation follows.
//
// ID is the identifier of the content.
GetId() testutil.ID
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent() {
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenTopic) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent() {
}
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenVideo) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent() {
}
func __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenContent(b []byte, v *ComplexInlineFragmentsNestedStuffTopicChildrenContent) error {
if string(b) == "null" {
return nil
}
var tn struct {
TypeName string `json:"__typename"`
}
err := json.Unmarshal(b, &tn)
if err != nil {
return err
}
switch tn.TypeName {
case "Article":
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticle)
return json.Unmarshal(b, *v)
case "Topic":
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenTopic)
return json.Unmarshal(b, *v)
case "Video":
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenVideo)
return json.Unmarshal(b, *v)
case "":
return fmt.Errorf(
"response was missing Content.__typename")
default:
return fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenContent: "%v"`, tn.TypeName)
}
}
func __marshalComplexInlineFragmentsNestedStuffTopicChildrenContent(v *ComplexInlineFragmentsNestedStuffTopicChildrenContent) ([]byte, error) {
var typename string
switch v := (*v).(type) {
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticle:
typename = "Article"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffTopicChildrenArticle
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsNestedStuffTopicChildrenTopic:
typename = "Topic"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffTopicChildrenTopic
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsNestedStuffTopicChildrenVideo:
typename = "Video"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsNestedStuffTopicChildrenVideo
}{typename, v}
return json.Marshal(result)
case nil:
return []byte("null"), nil
default:
return nil, fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenContent: "%T"`, v)
}
}
// ComplexInlineFragmentsNestedStuffTopicChildrenTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsNestedStuffTopicChildrenTopic struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenTopic.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenTopic) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenTopic.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenTopic) GetId() testutil.ID { return v.Id }
// ComplexInlineFragmentsNestedStuffTopicChildrenVideo includes the requested fields of the GraphQL type Video.
type ComplexInlineFragmentsNestedStuffTopicChildrenVideo struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenVideo.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenVideo) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenVideo.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenVideo) GetId() testutil.ID { return v.Id }
// ComplexInlineFragmentsNestedStuffVideo includes the requested fields of the GraphQL type Video.
type ComplexInlineFragmentsNestedStuffVideo struct {
Typename string `json:"__typename"`
}
// GetTypename returns ComplexInlineFragmentsNestedStuffVideo.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsNestedStuffVideo) GetTypename() string { return v.Typename }
// ComplexInlineFragmentsRandomItemArticle includes the requested fields of the GraphQL type Article.
type ComplexInlineFragmentsRandomItemArticle struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Text string `json:"text"`
Name string `json:"name"`
}
// GetTypename returns ComplexInlineFragmentsRandomItemArticle.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemArticle) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsRandomItemArticle.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemArticle) GetId() testutil.ID { return v.Id }
// GetText returns ComplexInlineFragmentsRandomItemArticle.Text, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemArticle) GetText() string { return v.Text }
// GetName returns ComplexInlineFragmentsRandomItemArticle.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemArticle) GetName() string { return v.Name }
// ComplexInlineFragmentsRandomItemContent includes the requested fields of the GraphQL interface Content.
//
// ComplexInlineFragmentsRandomItemContent is implemented by the following types:
// ComplexInlineFragmentsRandomItemArticle
// ComplexInlineFragmentsRandomItemTopic
// ComplexInlineFragmentsRandomItemVideo
// The GraphQL type's documentation follows.
//
// Content is implemented by various types like Article, Video, and Topic.
type ComplexInlineFragmentsRandomItemContent interface {
implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent()
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
GetTypename() string
// GetId returns the interface-field "id" from its implementation.
// The GraphQL interface field's documentation follows.
//
// ID is the identifier of the content.
GetId() testutil.ID
// GetName returns the interface-field "name" from its implementation.
GetName() string
}
func (v *ComplexInlineFragmentsRandomItemArticle) implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent() {
}
func (v *ComplexInlineFragmentsRandomItemTopic) implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent() {
}
func (v *ComplexInlineFragmentsRandomItemVideo) implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent() {
}
func __unmarshalComplexInlineFragmentsRandomItemContent(b []byte, v *ComplexInlineFragmentsRandomItemContent) error {
if string(b) == "null" {
return nil
}
var tn struct {
TypeName string `json:"__typename"`
}
err := json.Unmarshal(b, &tn)
if err != nil {
return err
}
switch tn.TypeName {
case "Article":
*v = new(ComplexInlineFragmentsRandomItemArticle)
return json.Unmarshal(b, *v)
case "Topic":
*v = new(ComplexInlineFragmentsRandomItemTopic)
return json.Unmarshal(b, *v)
case "Video":
*v = new(ComplexInlineFragmentsRandomItemVideo)
return json.Unmarshal(b, *v)
case "":
return fmt.Errorf(
"response was missing Content.__typename")
default:
return fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsRandomItemContent: "%v"`, tn.TypeName)
}
}
func __marshalComplexInlineFragmentsRandomItemContent(v *ComplexInlineFragmentsRandomItemContent) ([]byte, error) {
var typename string
switch v := (*v).(type) {
case *ComplexInlineFragmentsRandomItemArticle:
typename = "Article"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsRandomItemArticle
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsRandomItemTopic:
typename = "Topic"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsRandomItemTopic
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsRandomItemVideo:
typename = "Video"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsRandomItemVideo
}{typename, v}
return json.Marshal(result)
case nil:
return []byte("null"), nil
default:
return nil, fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsRandomItemContent: "%T"`, v)
}
}
// ComplexInlineFragmentsRandomItemTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsRandomItemTopic struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Name string `json:"name"`
}
// GetTypename returns ComplexInlineFragmentsRandomItemTopic.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemTopic) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsRandomItemTopic.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemTopic) GetId() testutil.ID { return v.Id }
// GetName returns ComplexInlineFragmentsRandomItemTopic.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemTopic) GetName() string { return v.Name }
// ComplexInlineFragmentsRandomItemVideo includes the requested fields of the GraphQL type Video.
type ComplexInlineFragmentsRandomItemVideo struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Name string `json:"name"`
Duration int `json:"duration"`
}
// GetTypename returns ComplexInlineFragmentsRandomItemVideo.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemVideo) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsRandomItemVideo.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemVideo) GetId() testutil.ID { return v.Id }
// GetName returns ComplexInlineFragmentsRandomItemVideo.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemVideo) GetName() string { return v.Name }
// GetDuration returns ComplexInlineFragmentsRandomItemVideo.Duration, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRandomItemVideo) GetDuration() int { return v.Duration }
// ComplexInlineFragmentsRepeatedStuffArticle includes the requested fields of the GraphQL type Article.
type ComplexInlineFragmentsRepeatedStuffArticle struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Url string `json:"url"`
// ID is the identifier of the content.
OtherId testutil.ID `json:"otherId"`
Name string `json:"name"`
Text string `json:"text"`
OtherName string `json:"otherName"`
}
// GetTypename returns ComplexInlineFragmentsRepeatedStuffArticle.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsRepeatedStuffArticle.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetId() testutil.ID { return v.Id }
// GetUrl returns ComplexInlineFragmentsRepeatedStuffArticle.Url, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetUrl() string { return v.Url }
// GetOtherId returns ComplexInlineFragmentsRepeatedStuffArticle.OtherId, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetOtherId() testutil.ID { return v.OtherId }
// GetName returns ComplexInlineFragmentsRepeatedStuffArticle.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetName() string { return v.Name }
// GetText returns ComplexInlineFragmentsRepeatedStuffArticle.Text, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetText() string { return v.Text }
// GetOtherName returns ComplexInlineFragmentsRepeatedStuffArticle.OtherName, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetOtherName() string { return v.OtherName }
// ComplexInlineFragmentsRepeatedStuffContent includes the requested fields of the GraphQL interface Content.
//
// ComplexInlineFragmentsRepeatedStuffContent is implemented by the following types:
// ComplexInlineFragmentsRepeatedStuffArticle
// ComplexInlineFragmentsRepeatedStuffTopic
// ComplexInlineFragmentsRepeatedStuffVideo
// The GraphQL type's documentation follows.
//
// Content is implemented by various types like Article, Video, and Topic.
type ComplexInlineFragmentsRepeatedStuffContent interface {
implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent()
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
GetTypename() string
// GetId returns the interface-field "id" from its implementation.
// The GraphQL interface field's documentation follows.
//
// ID is the identifier of the content.
GetId() testutil.ID
// GetUrl returns the interface-field "url" from its implementation.
GetUrl() string
// GetOtherId returns the interface-field "id" from its implementation.
// The GraphQL interface field's documentation follows.
//
// ID is the identifier of the content.
GetOtherId() testutil.ID
// GetName returns the interface-field "name" from its implementation.
GetName() string
// GetOtherName returns the interface-field "name" from its implementation.
GetOtherName() string
}
func (v *ComplexInlineFragmentsRepeatedStuffArticle) implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent() {
}
func (v *ComplexInlineFragmentsRepeatedStuffTopic) implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent() {
}
func (v *ComplexInlineFragmentsRepeatedStuffVideo) implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent() {
}
func __unmarshalComplexInlineFragmentsRepeatedStuffContent(b []byte, v *ComplexInlineFragmentsRepeatedStuffContent) error {
if string(b) == "null" {
return nil
}
var tn struct {
TypeName string `json:"__typename"`
}
err := json.Unmarshal(b, &tn)
if err != nil {
return err
}
switch tn.TypeName {
case "Article":
*v = new(ComplexInlineFragmentsRepeatedStuffArticle)
return json.Unmarshal(b, *v)
case "Topic":
*v = new(ComplexInlineFragmentsRepeatedStuffTopic)
return json.Unmarshal(b, *v)
case "Video":
*v = new(ComplexInlineFragmentsRepeatedStuffVideo)
return json.Unmarshal(b, *v)
case "":
return fmt.Errorf(
"response was missing Content.__typename")
default:
return fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsRepeatedStuffContent: "%v"`, tn.TypeName)
}
}
func __marshalComplexInlineFragmentsRepeatedStuffContent(v *ComplexInlineFragmentsRepeatedStuffContent) ([]byte, error) {
var typename string
switch v := (*v).(type) {
case *ComplexInlineFragmentsRepeatedStuffArticle:
typename = "Article"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsRepeatedStuffArticle
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsRepeatedStuffTopic:
typename = "Topic"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsRepeatedStuffTopic
}{typename, v}
return json.Marshal(result)
case *ComplexInlineFragmentsRepeatedStuffVideo:
typename = "Video"
result := struct {
TypeName string `json:"__typename"`
*ComplexInlineFragmentsRepeatedStuffVideo
}{typename, v}
return json.Marshal(result)
case nil:
return []byte("null"), nil
default:
return nil, fmt.Errorf(
`unexpected concrete type for ComplexInlineFragmentsRepeatedStuffContent: "%T"`, v)
}
}
// ComplexInlineFragmentsRepeatedStuffTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsRepeatedStuffTopic struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Url string `json:"url"`
// ID is the identifier of the content.
OtherId testutil.ID `json:"otherId"`
Name string `json:"name"`
OtherName string `json:"otherName"`
}
// GetTypename returns ComplexInlineFragmentsRepeatedStuffTopic.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsRepeatedStuffTopic.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetId() testutil.ID { return v.Id }
// GetUrl returns ComplexInlineFragmentsRepeatedStuffTopic.Url, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetUrl() string { return v.Url }
// GetOtherId returns ComplexInlineFragmentsRepeatedStuffTopic.OtherId, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetOtherId() testutil.ID { return v.OtherId }
// GetName returns ComplexInlineFragmentsRepeatedStuffTopic.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetName() string { return v.Name }
// GetOtherName returns ComplexInlineFragmentsRepeatedStuffTopic.OtherName, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetOtherName() string { return v.OtherName }
// ComplexInlineFragmentsRepeatedStuffVideo includes the requested fields of the GraphQL type Video.
type ComplexInlineFragmentsRepeatedStuffVideo struct {
Typename string `json:"__typename"`
// ID is the identifier of the content.
Id testutil.ID `json:"id"`
Url string `json:"url"`
// ID is the identifier of the content.
OtherId testutil.ID `json:"otherId"`
Name string `json:"name"`
OtherName string `json:"otherName"`
Duration int `json:"duration"`
}
// GetTypename returns ComplexInlineFragmentsRepeatedStuffVideo.Typename, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetTypename() string { return v.Typename }
// GetId returns ComplexInlineFragmentsRepeatedStuffVideo.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetId() testutil.ID { return v.Id }
// GetUrl returns ComplexInlineFragmentsRepeatedStuffVideo.Url, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetUrl() string { return v.Url }
// GetOtherId returns ComplexInlineFragmentsRepeatedStuffVideo.OtherId, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetOtherId() testutil.ID { return v.OtherId }
// GetName returns ComplexInlineFragmentsRepeatedStuffVideo.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetName() string { return v.Name }
// GetOtherName returns ComplexInlineFragmentsRepeatedStuffVideo.OtherName, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetOtherName() string { return v.OtherName }
// GetDuration returns ComplexInlineFragmentsRepeatedStuffVideo.Duration, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetDuration() int { return v.Duration }
// ComplexInlineFragmentsResponse is returned by ComplexInlineFragments on success.
type ComplexInlineFragmentsResponse struct {
Root ComplexInlineFragmentsRootTopic `json:"root"`
RandomItem ComplexInlineFragmentsRandomItemContent `json:"-"`
RepeatedStuff ComplexInlineFragmentsRepeatedStuffContent `json:"-"`
ConflictingStuff ComplexInlineFragmentsConflictingStuffContent `json:"-"`
NestedStuff ComplexInlineFragmentsNestedStuffContent `json:"-"`
}
// GetRoot returns ComplexInlineFragmentsResponse.Root, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsResponse) GetRoot() ComplexInlineFragmentsRootTopic { return v.Root }
// GetRandomItem returns ComplexInlineFragmentsResponse.RandomItem, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsResponse) GetRandomItem() ComplexInlineFragmentsRandomItemContent {
return v.RandomItem
}
// GetRepeatedStuff returns ComplexInlineFragmentsResponse.RepeatedStuff, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsResponse) GetRepeatedStuff() ComplexInlineFragmentsRepeatedStuffContent {
return v.RepeatedStuff
}
// GetConflictingStuff returns ComplexInlineFragmentsResponse.ConflictingStuff, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsResponse) GetConflictingStuff() ComplexInlineFragmentsConflictingStuffContent {
return v.ConflictingStuff
}
// GetNestedStuff returns ComplexInlineFragmentsResponse.NestedStuff, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsResponse) GetNestedStuff() ComplexInlineFragmentsNestedStuffContent {
return v.NestedStuff
}
func (v *ComplexInlineFragmentsResponse) UnmarshalJSON(b []byte) error {
if string(b) == "null" {
return nil
}
var firstPass struct {
*ComplexInlineFragmentsResponse
RandomItem json.RawMessage `json:"randomItem"`
RepeatedStuff json.RawMessage `json:"repeatedStuff"`
ConflictingStuff json.RawMessage `json:"conflictingStuff"`
NestedStuff json.RawMessage `json:"nestedStuff"`
graphql.NoUnmarshalJSON
}
firstPass.ComplexInlineFragmentsResponse = v
err := json.Unmarshal(b, &firstPass)
if err != nil {
return err
}
{
dst := &v.RandomItem
src := firstPass.RandomItem
if len(src) != 0 && string(src) != "null" {
err = __unmarshalComplexInlineFragmentsRandomItemContent(
src, dst)
if err != nil {
return fmt.Errorf(
"unable to unmarshal ComplexInlineFragmentsResponse.RandomItem: %w", err)
}
}
}
{
dst := &v.RepeatedStuff
src := firstPass.RepeatedStuff
if len(src) != 0 && string(src) != "null" {
err = __unmarshalComplexInlineFragmentsRepeatedStuffContent(
src, dst)
if err != nil {
return fmt.Errorf(
"unable to unmarshal ComplexInlineFragmentsResponse.RepeatedStuff: %w", err)
}
}
}
{
dst := &v.ConflictingStuff
src := firstPass.ConflictingStuff
if len(src) != 0 && string(src) != "null" {
err = __unmarshalComplexInlineFragmentsConflictingStuffContent(
src, dst)
if err != nil {
return fmt.Errorf(
"unable to unmarshal ComplexInlineFragmentsResponse.ConflictingStuff: %w", err)
}
}
}
{
dst := &v.NestedStuff
src := firstPass.NestedStuff
if len(src) != 0 && string(src) != "null" {
err = __unmarshalComplexInlineFragmentsNestedStuffContent(
src, dst)
if err != nil {
return fmt.Errorf(
"unable to unmarshal ComplexInlineFragmentsResponse.NestedStuff: %w", err)
}
}
}
return nil
}
type __premarshalComplexInlineFragmentsResponse struct {
Root ComplexInlineFragmentsRootTopic `json:"root"`
RandomItem json.RawMessage `json:"randomItem"`
RepeatedStuff json.RawMessage `json:"repeatedStuff"`
ConflictingStuff json.RawMessage `json:"conflictingStuff"`
NestedStuff json.RawMessage `json:"nestedStuff"`
}
func (v *ComplexInlineFragmentsResponse) MarshalJSON() ([]byte, error) {
premarshaled, err := v.__premarshalJSON()
if err != nil {
return nil, err
}
return json.Marshal(premarshaled)
}
func (v *ComplexInlineFragmentsResponse) __premarshalJSON() (*__premarshalComplexInlineFragmentsResponse, error) {
var retval __premarshalComplexInlineFragmentsResponse
retval.Root = v.Root
{
dst := &retval.RandomItem
src := v.RandomItem
var err error
*dst, err = __marshalComplexInlineFragmentsRandomItemContent(
&src)
if err != nil {
return nil, fmt.Errorf(
"unable to marshal ComplexInlineFragmentsResponse.RandomItem: %w", err)
}
}
{
dst := &retval.RepeatedStuff
src := v.RepeatedStuff
var err error
*dst, err = __marshalComplexInlineFragmentsRepeatedStuffContent(
&src)
if err != nil {
return nil, fmt.Errorf(
"unable to marshal ComplexInlineFragmentsResponse.RepeatedStuff: %w", err)
}
}
{
dst := &retval.ConflictingStuff
src := v.ConflictingStuff
var err error
*dst, err = __marshalComplexInlineFragmentsConflictingStuffContent(
&src)
if err != nil {
return nil, fmt.Errorf(
"unable to marshal ComplexInlineFragmentsResponse.ConflictingStuff: %w", err)
}
}
{
dst := &retval.NestedStuff
src := v.NestedStuff
var err error
*dst, err = __marshalComplexInlineFragmentsNestedStuffContent(
&src)
if err != nil {
return nil, fmt.Errorf(
"unable to marshal ComplexInlineFragmentsResponse.NestedStuff: %w", err)
}
}
return &retval, nil
}
// ComplexInlineFragmentsRootTopic includes the requested fields of the GraphQL type Topic.
type ComplexInlineFragmentsRootTopic struct {
// ID is documented in the Content interface.
Id testutil.ID `json:"id"`
SchoolGrade string `json:"schoolGrade"`
Name string `json:"name"`
}
// GetId returns ComplexInlineFragmentsRootTopic.Id, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRootTopic) GetId() testutil.ID { return v.Id }
// GetSchoolGrade returns ComplexInlineFragmentsRootTopic.SchoolGrade, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRootTopic) GetSchoolGrade() string { return v.SchoolGrade }
// GetName returns ComplexInlineFragmentsRootTopic.Name, and is useful for accessing the field via an interface.
func (v *ComplexInlineFragmentsRootTopic) GetName() string { return v.Name }
// The query or mutation executed by ComplexInlineFragments.
const ComplexInlineFragments_Operation = `
query ComplexInlineFragments {
root {
id
... on Topic {
schoolGrade
}
... on Content {
name
}
}
randomItem {
__typename
id
... on Article {
text
}
... on Content {
name
}
... on HasDuration {
duration
}
}
repeatedStuff: randomItem {
__typename
id
id
url
otherId: id
... on Article {
name
text
otherName: name
}
... on Content {
id
name
otherName: name
}
... on HasDuration {
duration
}
}
conflictingStuff: randomItem {
__typename
... on Article {
thumbnail {
id
thumbnailUrl
}
}
... on Video {
thumbnail {
id
timestampSec
}
}
}
nestedStuff: randomItem {
__typename
... on Topic {
children {
__typename
id
... on Article {
text
parent {
... on Content {
name
parent {
... on Topic {
children {
__typename
id
name
}
}
}
}
}
}
}
}
}
}
`
// We test all the spread cases from docs/DESIGN.md, see there for more context
// on each, as well as various other nonsense. But for abstract-in-abstract
// spreads, we can't test cases (4b) and (4c), where I implements J or vice
// versa, because gqlparser doesn't support interfaces that implement other
// interfaces yet.
func ComplexInlineFragments(
client graphql.Client,
) (*ComplexInlineFragmentsResponse, error) {
req := &graphql.Request{
OpName: "ComplexInlineFragments",
Query: ComplexInlineFragments_Operation,
}
var err error
var data ComplexInlineFragmentsResponse
resp := &graphql.Response{Data: &data}
err = client.MakeRequest(
nil,
req,
resp,
)
return &data, err
}