apollo-federation 2.15.0

Apollo Federation
Documentation
---
source: apollo-federation/src/connectors/json_selection/parser.rs
expression: "selection!(r#\"\n            id\n            created\n            choices->first.message { content role }\n            model\n        \"#)"
---
JSONSelection {
    inner: Named(
        SubSelection {
            selections: [
                NamedSelection {
                    prefix: None,
                    path: WithRange {
                        node: Path(
                            PathSelection {
                                path: WithRange {
                                    node: Key(
                                        WithRange {
                                            node: Field(
                                                "id",
                                            ),
                                            range: Some(
                                                13..15,
                                            ),
                                        },
                                        WithRange {
                                            node: Empty,
                                            range: Some(
                                                15..15,
                                            ),
                                        },
                                    ),
                                    range: Some(
                                        13..15,
                                    ),
                                },
                            },
                        ),
                        range: Some(
                            13..15,
                        ),
                    },
                },
                NamedSelection {
                    prefix: None,
                    path: WithRange {
                        node: Path(
                            PathSelection {
                                path: WithRange {
                                    node: Key(
                                        WithRange {
                                            node: Field(
                                                "created",
                                            ),
                                            range: Some(
                                                28..35,
                                            ),
                                        },
                                        WithRange {
                                            node: Empty,
                                            range: Some(
                                                35..35,
                                            ),
                                        },
                                    ),
                                    range: Some(
                                        28..35,
                                    ),
                                },
                            },
                        ),
                        range: Some(
                            28..35,
                        ),
                    },
                },
                NamedSelection {
                    prefix: Spread(
                        None,
                    ),
                    path: WithRange {
                        node: Path(
                            PathSelection {
                                path: WithRange {
                                    node: Key(
                                        WithRange {
                                            node: Field(
                                                "choices",
                                            ),
                                            range: Some(
                                                48..55,
                                            ),
                                        },
                                        WithRange {
                                            node: Method(
                                                WithRange {
                                                    node: "first",
                                                    range: Some(
                                                        57..62,
                                                    ),
                                                },
                                                None,
                                                WithRange {
                                                    node: Key(
                                                        WithRange {
                                                            node: Field(
                                                                "message",
                                                            ),
                                                            range: Some(
                                                                63..70,
                                                            ),
                                                        },
                                                        WithRange {
                                                            node: Selection(
                                                                SubSelection {
                                                                    selections: [
                                                                        NamedSelection {
                                                                            prefix: None,
                                                                            path: WithRange {
                                                                                node: Path(
                                                                                    PathSelection {
                                                                                        path: WithRange {
                                                                                            node: Key(
                                                                                                WithRange {
                                                                                                    node: Field(
                                                                                                        "content",
                                                                                                    ),
                                                                                                    range: Some(
                                                                                                        73..80,
                                                                                                    ),
                                                                                                },
                                                                                                WithRange {
                                                                                                    node: Empty,
                                                                                                    range: Some(
                                                                                                        80..80,
                                                                                                    ),
                                                                                                },
                                                                                            ),
                                                                                            range: Some(
                                                                                                73..80,
                                                                                            ),
                                                                                        },
                                                                                    },
                                                                                ),
                                                                                range: Some(
                                                                                    73..80,
                                                                                ),
                                                                            },
                                                                        },
                                                                        NamedSelection {
                                                                            prefix: None,
                                                                            path: WithRange {
                                                                                node: Path(
                                                                                    PathSelection {
                                                                                        path: WithRange {
                                                                                            node: Key(
                                                                                                WithRange {
                                                                                                    node: Field(
                                                                                                        "role",
                                                                                                    ),
                                                                                                    range: Some(
                                                                                                        81..85,
                                                                                                    ),
                                                                                                },
                                                                                                WithRange {
                                                                                                    node: Empty,
                                                                                                    range: Some(
                                                                                                        85..85,
                                                                                                    ),
                                                                                                },
                                                                                            ),
                                                                                            range: Some(
                                                                                                81..85,
                                                                                            ),
                                                                                        },
                                                                                    },
                                                                                ),
                                                                                range: Some(
                                                                                    81..85,
                                                                                ),
                                                                            },
                                                                        },
                                                                    ],
                                                                    range: Some(
                                                                        71..87,
                                                                    ),
                                                                },
                                                            ),
                                                            range: Some(
                                                                71..87,
                                                            ),
                                                        },
                                                    ),
                                                    range: Some(
                                                        62..87,
                                                    ),
                                                },
                                            ),
                                            range: Some(
                                                55..87,
                                            ),
                                        },
                                    ),
                                    range: Some(
                                        48..87,
                                    ),
                                },
                            },
                        ),
                        range: Some(
                            48..87,
                        ),
                    },
                },
                NamedSelection {
                    prefix: None,
                    path: WithRange {
                        node: Path(
                            PathSelection {
                                path: WithRange {
                                    node: Key(
                                        WithRange {
                                            node: Field(
                                                "model",
                                            ),
                                            range: Some(
                                                100..105,
                                            ),
                                        },
                                        WithRange {
                                            node: Empty,
                                            range: Some(
                                                105..105,
                                            ),
                                        },
                                    ),
                                    range: Some(
                                        100..105,
                                    ),
                                },
                            },
                        ),
                        range: Some(
                            100..105,
                        ),
                    },
                },
            ],
            range: Some(
                13..105,
            ),
        },
    ),
    spec: V0_3,
}