libgraphql_core/operation/
fragment_registry.rs1use crate::operation::Fragment;
2use std::{collections::HashMap, sync::OnceLock};
3
4fn empty_fragment_registry() -> &'static FragmentRegistry<'static> {
5 static EMPTY_FRAGMENT_REGISTRY: OnceLock<FragmentRegistry> = OnceLock::new();
6 EMPTY_FRAGMENT_REGISTRY.get_or_init(|| {
7 FragmentRegistry {
8 fragments: HashMap::new(),
9 }
10 })
11}
12
13#[derive(Clone, Debug, PartialEq)]
14pub struct FragmentRegistry<'schema> {
15 pub(super) fragments: HashMap<String, Fragment<'schema>>,
16}
17
18impl<'schema> FragmentRegistry<'schema> {
19 pub fn empty() -> &'static FragmentRegistry<'static> {
20 empty_fragment_registry()
21 }
22
23 pub fn fragments(&self) -> &HashMap<String, Fragment<'schema>> {
24 &self.fragments
25 }
26}