graphql_federated_graph/federated_graph/
enum_definitions.rs1use super::{Directive, EnumDefinitionId, FederatedGraph, StringId};
2
3pub type EnumDefinition<'a> = super::view::ViewNested<'a, EnumDefinitionId, EnumDefinitionRecord>;
4
5impl std::fmt::Debug for EnumDefinition<'_> {
6 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7 f.debug_struct("EnumDefinition")
8 .field("name", &self.then(|ty| ty.name).as_str())
9 .finish_non_exhaustive()
10 }
11}
12
13#[derive(Clone, Debug)]
14pub struct EnumDefinitionRecord {
15 pub namespace: Option<StringId>,
16 pub name: StringId,
17 pub directives: Vec<Directive>,
18 pub description: Option<StringId>,
19}
20
21impl FederatedGraph {
22 pub fn push_enum_definition(&mut self, enum_definition: EnumDefinitionRecord) -> EnumDefinitionId {
23 let id = self.enum_definitions.len().into();
24 self.enum_definitions.push(enum_definition);
25 id
26 }
27}