1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::executable::{AbstractOperationDefinition, FragmentDefinition};
#[derive(Debug)]
pub enum ExecutableDefinition<O: AbstractOperationDefinition, F: FragmentDefinition> {
Operation(O),
Fragment(F),
}
pub trait AbstractExecutableDefinition:
Into<ExecutableDefinition<Self::OperationDefinition, Self::FragmentDefinition>>
{
type OperationDefinition: AbstractOperationDefinition;
type FragmentDefinition: FragmentDefinition;
}
impl<O: AbstractOperationDefinition, F: FragmentDefinition> AbstractExecutableDefinition
for ExecutableDefinition<O, F>
{
type OperationDefinition = O;
type FragmentDefinition = F;
}