apollo_federation/query_plan/
requires_selection.rs1use apollo_compiler::Name;
7use serde::Deserialize;
8use serde::Serialize;
9
10#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
11#[serde(rename_all = "PascalCase", tag = "kind")]
12pub enum Selection {
13 Field(Field),
14 InlineFragment(InlineFragment),
15}
16
17#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
18#[serde(rename_all = "camelCase")]
19pub struct Field {
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub alias: Option<Name>,
22 pub name: Name,
23 #[serde(skip_serializing_if = "Vec::is_empty")]
24 #[serde(default)]
25 pub selections: Vec<Selection>,
26}
27
28#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
29#[serde(rename_all = "camelCase")]
30pub struct InlineFragment {
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub type_condition: Option<Name>,
33 pub selections: Vec<Selection>,
34}