apollo-federation 2.13.1

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: PathSelection {
                        path: WithRange {
                            node: Key(
                                WithRange {
                                    node: Field(
                                        "id",
                                    ),
                                    range: Some(
                                        13..15,
                                    ),
                                },
                                WithRange {
                                    node: Empty,
                                    range: Some(
                                        15..15,
                                    ),
                                },
                            ),
                            range: Some(
                                13..15,
                            ),
                        },
                    },
                },
                NamedSelection {
                    prefix: None,
                    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,
                            ),
                        },
                    },
                },
                NamedSelection {
                    prefix: Spread(
                        None,
                    ),
                    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: PathSelection {
                                                                        path: WithRange {
                                                                            node: Key(
                                                                                WithRange {
                                                                                    node: Field(
                                                                                        "content",
                                                                                    ),
                                                                                    range: Some(
                                                                                        73..80,
                                                                                    ),
                                                                                },
                                                                                WithRange {
                                                                                    node: Empty,
                                                                                    range: Some(
                                                                                        80..80,
                                                                                    ),
                                                                                },
                                                                            ),
                                                                            range: Some(
                                                                                73..80,
                                                                            ),
                                                                        },
                                                                    },
                                                                },
                                                                NamedSelection {
                                                                    prefix: None,
                                                                    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(
                                                                71..87,
                                                            ),
                                                        },
                                                    ),
                                                    range: Some(
                                                        71..87,
                                                    ),
                                                },
                                            ),
                                            range: Some(
                                                62..87,
                                            ),
                                        },
                                    ),
                                    range: Some(
                                        55..87,
                                    ),
                                },
                            ),
                            range: Some(
                                48..87,
                            ),
                        },
                    },
                },
                NamedSelection {
                    prefix: None,
                    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(
                13..105,
            ),
        },
    ),
    spec: V0_2,
}