use crate::federated_graph::{
InterfaceId, ObjectId, OverrideLabel, OverrideSource, SelectionSet, StringId, SubgraphId, Type,
};
#[derive(Clone, PartialEq, PartialOrd, Debug)]
pub(crate) struct JoinTypeDirective {
pub subgraph_id: SubgraphId,
pub key: Option<SelectionSet>,
pub resolvable: bool,
pub is_interface_object: bool,
}
#[derive(PartialEq, PartialOrd, Clone, Debug)]
pub(crate) struct JoinEnumValueDirective {
pub(crate) graph: SubgraphId,
}
#[derive(Default, Clone, PartialEq, PartialOrd, Debug)]
pub struct JoinFieldDirective {
pub subgraph_id: Option<SubgraphId>,
pub requires: Option<SelectionSet>,
pub provides: Option<SelectionSet>,
pub r#type: Option<Type>,
pub external: bool,
pub r#override: Option<OverrideSource>,
pub override_label: Option<OverrideLabel>,
}
#[derive(Clone, PartialEq, PartialOrd, Debug)]
pub struct JoinImplementsDirective {
pub subgraph_id: SubgraphId,
pub interface_id: InterfaceId,
}
#[derive(Clone, PartialEq, PartialOrd, Debug)]
pub struct JoinUnionMemberDirective {
pub subgraph_id: SubgraphId,
pub object_id: ObjectId,
}
#[derive(Clone, PartialEq, PartialOrd, Debug)]
pub struct JoinGraphDirective {
pub name: StringId,
pub url: Option<StringId>,
}