cynic_parser/executable/generated/
definition.rs1use 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}