Schema {
    sources: {
        1: SourceFile {
            path: "built_in.graphql",
            source_text: include_str!("built_in.graphql"),
        },
        29: SourceFile {
            path: "0028_typename_introspection_in_union.graphql",
            source_text: "union SearchResult = Photo | Person\n\ntype Person {\n  name: String\n  age: Int\n}\n\ntype Photo {\n  height: Int\n  width: Int\n}\n\ntype Query {\n  firstSearchResult: SearchResult\n}\n\n{\n  firstSearchResult {\n    __typename\n    ... on Person {\n      name\n    }\n    ... on Photo {\n      height\n    }\n  }\n}",
        },
    },
    schema_definition: SchemaDefinition {
        description: None,
        directives: [],
        query: Some(
            ComponentName {
                origin: Definition,
                name: "Query",
            },
        ),
        mutation: None,
        subscription: None,
    },
    directive_definitions: {
        "skip": built_in_directive!("skip"),
        "include": built_in_directive!("include"),
        "deprecated": built_in_directive!("deprecated"),
        "specifiedBy": built_in_directive!("specifiedBy"),
    },
    types: {
        "__Schema": built_in_type!("__Schema"),
        "__Type": built_in_type!("__Type"),
        "__TypeKind": built_in_type!("__TypeKind"),
        "__Field": built_in_type!("__Field"),
        "__InputValue": built_in_type!("__InputValue"),
        "__EnumValue": built_in_type!("__EnumValue"),
        "__Directive": built_in_type!("__Directive"),
        "__DirectiveLocation": built_in_type!("__DirectiveLocation"),
        "Int": built_in_type!("Int"),
        "String": built_in_type!("String"),
        "Boolean": built_in_type!("Boolean"),
        "SearchResult": Union(
            0..35 @29 UnionType {
                description: None,
                name: "SearchResult",
                directives: [],
                members: {
                    ComponentName {
                        origin: Definition,
                        name: "Photo",
                    },
                    ComponentName {
                        origin: Definition,
                        name: "Person",
                    },
                },
            },
        ),
        "Person": Object(
            37..78 @29 ObjectType {
                description: None,
                name: "Person",
                implements_interfaces: {},
                directives: [],
                fields: {
                    "name": Component {
                        origin: Definition,
                        node: 53..65 @29 FieldDefinition {
                            description: None,
                            name: "name",
                            arguments: [],
                            ty: Named(
                                "String",
                            ),
                            directives: [],
                        },
                    },
                    "age": Component {
                        origin: Definition,
                        node: 68..76 @29 FieldDefinition {
                            description: None,
                            name: "age",
                            arguments: [],
                            ty: Named(
                                "Int",
                            ),
                            directives: [],
                        },
                    },
                },
            },
        ),
        "Photo": Object(
            80..121 @29 ObjectType {
                description: None,
                name: "Photo",
                implements_interfaces: {},
                directives: [],
                fields: {
                    "height": Component {
                        origin: Definition,
                        node: 95..106 @29 FieldDefinition {
                            description: None,
                            name: "height",
                            arguments: [],
                            ty: Named(
                                "Int",
                            ),
                            directives: [],
                        },
                    },
                    "width": Component {
                        origin: Definition,
                        node: 109..119 @29 FieldDefinition {
                            description: None,
                            name: "width",
                            arguments: [],
                            ty: Named(
                                "Int",
                            ),
                            directives: [],
                        },
                    },
                },
            },
        ),
        "Query": Object(
            123..171 @29 ObjectType {
                description: None,
                name: "Query",
                implements_interfaces: {},
                directives: [],
                fields: {
                    "firstSearchResult": Component {
                        origin: Definition,
                        node: 138..169 @29 FieldDefinition {
                            description: None,
                            name: "firstSearchResult",
                            arguments: [],
                            ty: Named(
                                "SearchResult",
                            ),
                            directives: [],
                        },
                    },
                },
            },
        ),
    },
}
ExecutableDocument {
    sources: {
        1: SourceFile {
            path: "built_in.graphql",
            source_text: include_str!("built_in.graphql"),
        },
        29: SourceFile {
            path: "0028_typename_introspection_in_union.graphql",
            source_text: "union SearchResult = Photo | Person\n\ntype Person {\n  name: String\n  age: Int\n}\n\ntype Photo {\n  height: Int\n  width: Int\n}\n\ntype Query {\n  firstSearchResult: SearchResult\n}\n\n{\n  firstSearchResult {\n    __typename\n    ... on Person {\n      name\n    }\n    ... on Photo {\n      height\n    }\n  }\n}",
        },
    },
    operations: OperationMap {
        anonymous: Some(
            173..292 @29 Operation {
                operation_type: Query,
                name: None,
                variables: [],
                directives: [],
                selection_set: SelectionSet {
                    ty: "Query",
                    selections: [
                        Field(
                            177..290 @29 Field {
                                definition: 138..169 @29 FieldDefinition {
                                    description: None,
                                    name: "firstSearchResult",
                                    arguments: [],
                                    ty: Named(
                                        "SearchResult",
                                    ),
                                    directives: [],
                                },
                                alias: None,
                                name: "firstSearchResult",
                                arguments: [],
                                directives: [],
                                selection_set: SelectionSet {
                                    ty: "SearchResult",
                                    selections: [
                                        Field(
                                            201..211 @29 Field {
                                                definition: FieldDefinition {
                                                    description: None,
                                                    name: "__typename",
                                                    arguments: [],
                                                    ty: NonNullNamed(
                                                        "String",
                                                    ),
                                                    directives: [],
                                                },
                                                alias: None,
                                                name: "__typename",
                                                arguments: [],
                                                directives: [],
                                                selection_set: SelectionSet {
                                                    ty: "String",
                                                    selections: [],
                                                },
                                            },
                                        ),
                                        InlineFragment(
                                            216..248 @29 InlineFragment {
                                                type_condition: Some(
                                                    "Person",
                                                ),
                                                directives: [],
                                                selection_set: SelectionSet {
                                                    ty: "Person",
                                                    selections: [
                                                        Field(
                                                            238..242 @29 Field {
                                                                definition: 53..65 @29 FieldDefinition {
                                                                    description: None,
                                                                    name: "name",
                                                                    arguments: [],
                                                                    ty: Named(
                                                                        "String",
                                                                    ),
                                                                    directives: [],
                                                                },
                                                                alias: None,
                                                                name: "name",
                                                                arguments: [],
                                                                directives: [],
                                                                selection_set: SelectionSet {
                                                                    ty: "String",
                                                                    selections: [],
                                                                },
                                                            },
                                                        ),
                                                    ],
                                                },
                                            },
                                        ),
                                        InlineFragment(
                                            253..286 @29 InlineFragment {
                                                type_condition: Some(
                                                    "Photo",
                                                ),
                                                directives: [],
                                                selection_set: SelectionSet {
                                                    ty: "Photo",
                                                    selections: [
                                                        Field(
                                                            274..280 @29 Field {
                                                                definition: 95..106 @29 FieldDefinition {
                                                                    description: None,
                                                                    name: "height",
                                                                    arguments: [],
                                                                    ty: Named(
                                                                        "Int",
                                                                    ),
                                                                    directives: [],
                                                                },
                                                                alias: None,
                                                                name: "height",
                                                                arguments: [],
                                                                directives: [],
                                                                selection_set: SelectionSet {
                                                                    ty: "Int",
                                                                    selections: [],
                                                                },
                                                            },
                                                        ),
                                                    ],
                                                },
                                            },
                                        ),
                                    ],
                                },
                            },
                        ),
                    ],
                },
            },
        ),
        named: {},
    },
    fragments: {},
}
