Schema {
    sources: {
        1: SourceFile {
            path: "built_in.graphql",
            source_text: include_str!("built_in.graphql"),
        },
        12: SourceFile {
            path: "0010_operation_with_defined_fields.graphql",
            source_text: "query getProduct {\n  size\n  topProducts {\n    name\n    inStock\n  }\n}\n\ntype Query {\n  topProducts: Product\n  name: String\n  size: Int\n}\n\ntype Product {\n  inStock: Boolean @join__field(graph: INVENTORY)\n  name: String @join__field(graph: PRODUCTS)\n  price: Int\n  shippingEstimate: Int\n  upc: String!\n  weight: Int\n}\n\ndirective @join__field(graph: join__Graph) on FIELD_DEFINITION\nenum join__Graph {\n  INVENTORY,\n  PRODUCTS,\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"),
        "join__field": 315..377 @12 DirectiveDefinition {
            description: None,
            name: "join__field",
            arguments: [
                338..356 @12 InputValueDefinition {
                    description: None,
                    name: "graph",
                    ty: 345..356 @12 Named(
                        "join__Graph",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            repeatable: false,
            locations: [
                "FIELD_DEFINITION",
            ],
        },
    },
    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"),
        "Query": Object(
            70..134 @12 ObjectType {
                description: None,
                name: "Query",
                implements_interfaces: {},
                directives: [],
                fields: {
                    "topProducts": Component {
                        origin: Definition,
                        node: 85..105 @12 FieldDefinition {
                            description: None,
                            name: "topProducts",
                            arguments: [],
                            ty: Named(
                                "Product",
                            ),
                            directives: [],
                        },
                    },
                    "name": Component {
                        origin: Definition,
                        node: 108..120 @12 FieldDefinition {
                            description: None,
                            name: "name",
                            arguments: [],
                            ty: Named(
                                "String",
                            ),
                            directives: [],
                        },
                    },
                    "size": Component {
                        origin: Definition,
                        node: 123..132 @12 FieldDefinition {
                            description: None,
                            name: "size",
                            arguments: [],
                            ty: Named(
                                "Int",
                            ),
                            directives: [],
                        },
                    },
                },
            },
        ),
        "Product": Object(
            136..313 @12 ObjectType {
                description: None,
                name: "Product",
                implements_interfaces: {},
                directives: [],
                fields: {
                    "inStock": Component {
                        origin: Definition,
                        node: 153..200 @12 FieldDefinition {
                            description: None,
                            name: "inStock",
                            arguments: [],
                            ty: Named(
                                "Boolean",
                            ),
                            directives: [
                                170..200 @12 Directive {
                                    name: "join__field",
                                    arguments: [
                                        183..199 @12 Argument {
                                            name: "graph",
                                            value: 190..199 @12 Enum(
                                                "INVENTORY",
                                            ),
                                        },
                                    ],
                                },
                            ],
                        },
                    },
                    "name": Component {
                        origin: Definition,
                        node: 203..245 @12 FieldDefinition {
                            description: None,
                            name: "name",
                            arguments: [],
                            ty: Named(
                                "String",
                            ),
                            directives: [
                                216..245 @12 Directive {
                                    name: "join__field",
                                    arguments: [
                                        229..244 @12 Argument {
                                            name: "graph",
                                            value: 236..244 @12 Enum(
                                                "PRODUCTS",
                                            ),
                                        },
                                    ],
                                },
                            ],
                        },
                    },
                    "price": Component {
                        origin: Definition,
                        node: 248..258 @12 FieldDefinition {
                            description: None,
                            name: "price",
                            arguments: [],
                            ty: Named(
                                "Int",
                            ),
                            directives: [],
                        },
                    },
                    "shippingEstimate": Component {
                        origin: Definition,
                        node: 261..282 @12 FieldDefinition {
                            description: None,
                            name: "shippingEstimate",
                            arguments: [],
                            ty: Named(
                                "Int",
                            ),
                            directives: [],
                        },
                    },
                    "upc": Component {
                        origin: Definition,
                        node: 285..297 @12 FieldDefinition {
                            description: None,
                            name: "upc",
                            arguments: [],
                            ty: NonNullNamed(
                                "String",
                            ),
                            directives: [],
                        },
                    },
                    "weight": Component {
                        origin: Definition,
                        node: 300..311 @12 FieldDefinition {
                            description: None,
                            name: "weight",
                            arguments: [],
                            ty: Named(
                                "Int",
                            ),
                            directives: [],
                        },
                    },
                },
            },
        ),
        "join__Graph": Enum(
            378..423 @12 EnumType {
                description: None,
                name: "join__Graph",
                directives: [],
                values: {
                    "INVENTORY": Component {
                        origin: Definition,
                        node: 399..408 @12 EnumValueDefinition {
                            description: None,
                            value: "INVENTORY",
                            directives: [],
                        },
                    },
                    "PRODUCTS": Component {
                        origin: Definition,
                        node: 412..420 @12 EnumValueDefinition {
                            description: None,
                            value: "PRODUCTS",
                            directives: [],
                        },
                    },
                },
            },
        ),
    },
}
ExecutableDocument {
    sources: {
        1: SourceFile {
            path: "built_in.graphql",
            source_text: include_str!("built_in.graphql"),
        },
        12: SourceFile {
            path: "0010_operation_with_defined_fields.graphql",
            source_text: "query getProduct {\n  size\n  topProducts {\n    name\n    inStock\n  }\n}\n\ntype Query {\n  topProducts: Product\n  name: String\n  size: Int\n}\n\ntype Product {\n  inStock: Boolean @join__field(graph: INVENTORY)\n  name: String @join__field(graph: PRODUCTS)\n  price: Int\n  shippingEstimate: Int\n  upc: String!\n  weight: Int\n}\n\ndirective @join__field(graph: join__Graph) on FIELD_DEFINITION\nenum join__Graph {\n  INVENTORY,\n  PRODUCTS,\n}\n",
        },
    },
    operations: OperationMap {
        anonymous: None,
        named: {
            "getProduct": 0..68 @12 Operation {
                operation_type: Query,
                name: Some(
                    "getProduct",
                ),
                variables: [],
                directives: [],
                selection_set: SelectionSet {
                    ty: "Query",
                    selections: [
                        Field(
                            21..25 @12 Field {
                                definition: 123..132 @12 FieldDefinition {
                                    description: None,
                                    name: "size",
                                    arguments: [],
                                    ty: Named(
                                        "Int",
                                    ),
                                    directives: [],
                                },
                                alias: None,
                                name: "size",
                                arguments: [],
                                directives: [],
                                selection_set: SelectionSet {
                                    ty: "Int",
                                    selections: [],
                                },
                            },
                        ),
                        Field(
                            28..66 @12 Field {
                                definition: 85..105 @12 FieldDefinition {
                                    description: None,
                                    name: "topProducts",
                                    arguments: [],
                                    ty: Named(
                                        "Product",
                                    ),
                                    directives: [],
                                },
                                alias: None,
                                name: "topProducts",
                                arguments: [],
                                directives: [],
                                selection_set: SelectionSet {
                                    ty: "Product",
                                    selections: [
                                        Field(
                                            46..50 @12 Field {
                                                definition: 203..245 @12 FieldDefinition {
                                                    description: None,
                                                    name: "name",
                                                    arguments: [],
                                                    ty: Named(
                                                        "String",
                                                    ),
                                                    directives: [
                                                        216..245 @12 Directive {
                                                            name: "join__field",
                                                            arguments: [
                                                                229..244 @12 Argument {
                                                                    name: "graph",
                                                                    value: 236..244 @12 Enum(
                                                                        "PRODUCTS",
                                                                    ),
                                                                },
                                                            ],
                                                        },
                                                    ],
                                                },
                                                alias: None,
                                                name: "name",
                                                arguments: [],
                                                directives: [],
                                                selection_set: SelectionSet {
                                                    ty: "String",
                                                    selections: [],
                                                },
                                            },
                                        ),
                                        Field(
                                            55..62 @12 Field {
                                                definition: 153..200 @12 FieldDefinition {
                                                    description: None,
                                                    name: "inStock",
                                                    arguments: [],
                                                    ty: Named(
                                                        "Boolean",
                                                    ),
                                                    directives: [
                                                        170..200 @12 Directive {
                                                            name: "join__field",
                                                            arguments: [
                                                                183..199 @12 Argument {
                                                                    name: "graph",
                                                                    value: 190..199 @12 Enum(
                                                                        "INVENTORY",
                                                                    ),
                                                                },
                                                            ],
                                                        },
                                                    ],
                                                },
                                                alias: None,
                                                name: "inStock",
                                                arguments: [],
                                                directives: [],
                                                selection_set: SelectionSet {
                                                    ty: "Boolean",
                                                    selections: [],
                                                },
                                            },
                                        ),
                                    ],
                                },
                            },
                        ),
                    ],
                },
            },
        },
    },
    fragments: {},
}
