graphql_federated_graph/federated_graph/
scalar_definitions.rs

1use super::{Directive, FederatedGraph, ScalarDefinitionId, StringId};
2
3pub type ScalarDefinition<'a> = super::view::ViewNested<'a, ScalarDefinitionId, ScalarDefinitionRecord>;
4
5impl std::fmt::Debug for ScalarDefinition<'_> {
6    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7        f.debug_struct("ScalarDefinition")
8            .field("name", &self.then(|ty| ty.name).as_str())
9            .finish_non_exhaustive()
10    }
11}
12
13#[derive(Clone, Debug)]
14pub struct ScalarDefinitionRecord {
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_scalar_definition(&mut self, scalar_definition: ScalarDefinitionRecord) -> ScalarDefinitionId {
23        let id = self.scalar_definitions.len().into();
24        self.scalar_definitions.push(scalar_definition);
25        id
26    }
27}