cynic_parser/executable/generated/
definition.rs

1use super::prelude::*;
2use super::{
3    fragment::FragmentDefinition,
4    ids::{ExecutableDefinitionId, FragmentDefinitionId, OperationDefinitionId},
5    operation::OperationDefinition,
6    ExecutableId,
7};
8#[allow(unused_imports)]
9use std::fmt::{self, Write};
10
11pub enum ExecutableDefinitionRecord {
12    Operation(OperationDefinitionId),
13    Fragment(FragmentDefinitionId),
14}
15
16#[derive(Clone, Copy, Debug)]
17pub enum ExecutableDefinition<'a> {
18    Operation(OperationDefinition<'a>),
19    Fragment(FragmentDefinition<'a>),
20}
21
22impl ExecutableId for ExecutableDefinitionId {
23    type Reader<'a> = ExecutableDefinition<'a>;
24    fn read(self, document: &ExecutableDocument) -> Self::Reader<'_> {
25        match document.lookup(self) {
26            ExecutableDefinitionRecord::Operation(id) => {
27                ExecutableDefinition::Operation(document.read(*id))
28            }
29            ExecutableDefinitionRecord::Fragment(id) => {
30                ExecutableDefinition::Fragment(document.read(*id))
31            }
32        }
33    }
34}
35
36impl IdReader for ExecutableDefinition<'_> {
37    type Id = ExecutableDefinitionId;
38    type Reader<'a> = ExecutableDefinition<'a>;
39    fn new(id: Self::Id, document: &'_ ExecutableDocument) -> Self::Reader<'_> {
40        document.read(id)
41    }
42}