1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use super::{DefaultVisitorContext, QueryVisitor, SchemaVisitor};
use crate::static_graphql::*;
pub enum ASTKind {
Schema(schema::Document),
Operation(query::Document),
}
pub trait ASTVisitor<T = DefaultVisitorContext>: QueryVisitor<T> + SchemaVisitor<T> {
fn visit_ast(&mut self, ast: ASTKind, visitor_context: &mut T) {
match ast {
ASTKind::Schema(schema) => self.visit_schema_document(&schema, visitor_context),
ASTKind::Operation(operation) => self.visit_document(&operation, visitor_context),
}
}
}