graphql_federated_graph/directives/
federation.rs1use crate::{InterfaceId, ObjectId, OverrideLabel, OverrideSource, SelectionSet, StringId, SubgraphId, Type};
2
3#[derive(Clone, PartialEq, PartialOrd, Debug)]
13pub struct JoinTypeDirective {
14 pub subgraph_id: SubgraphId,
15 pub key: Option<SelectionSet>,
16 pub resolvable: bool,
17 pub is_interface_object: bool,
18}
19
20#[derive(Default, Clone, PartialEq, PartialOrd, Debug)]
32pub struct JoinFieldDirective {
33 pub subgraph_id: Option<SubgraphId>,
34 pub requires: Option<SelectionSet>,
35 pub provides: Option<SelectionSet>,
36 pub r#type: Option<Type>,
37 pub external: bool,
38 pub r#override: Option<OverrideSource>,
39 pub override_label: Option<OverrideLabel>,
40}
41
42#[derive(Clone, PartialEq, PartialOrd, Debug)]
49pub struct JoinImplementsDirective {
50 pub subgraph_id: SubgraphId,
51 pub interface_id: InterfaceId,
52}
53
54#[derive(Clone, PartialEq, PartialOrd, Debug)]
61pub struct JoinUnionMemberDirective {
62 pub subgraph_id: SubgraphId,
63 pub object_id: ObjectId,
64}
65
66#[derive(Clone, PartialEq, PartialOrd, Debug)]
72pub struct JoinEnumValueDirective {
73 pub subgraph_id: SubgraphId,
74}
75
76#[derive(Clone, PartialEq, PartialOrd, Debug)]
80pub struct JoinGraphDirective {
81 pub name: StringId,
82 pub url: Option<StringId>,
83}