From 3b6c69ca1e6b8d61a7ce8cda0b45e2d97dd1e4d1 Mon Sep 17 00:00:00 2001
From: Magnus Hallin <mhallin@fastmail.com>
Date: Sun, 18 Sep 2016 20:59:38 +0200
Subject: [PATCH] Move executor to its own library

---
 src/{types/schema.rs => executor.rs}                     | 0
 src/lib.rs                                               | 7 +++++--
 src/schema/model.rs                                      | 2 +-
 src/schema/schema.rs                                     | 2 +-
 src/tests/schema.rs                                      | 2 +-
 src/types/base.rs                                        | 2 +-
 src/types/containers.rs                                  | 2 +-
 src/types/mod.rs                                         | 3 ---
 src/types/pointers.rs                                    | 2 +-
 src/types/scalars.rs                                     | 2 +-
 src/validation/rules/overlapping_fields_can_be_merged.rs | 2 +-
 src/validation/test_harness.rs                           | 2 +-
 12 files changed, 14 insertions(+), 14 deletions(-)
 rename src/{types/schema.rs => executor.rs} (100%)

diff --git a/src/types/schema.rs b/src/executor.rs
similarity index 100%
rename from src/types/schema.rs
rename to src/executor.rs
diff --git a/src/lib.rs b/src/lib.rs
index e2ec9493..e0c4f6f1 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -183,6 +183,7 @@ mod value;
 mod types;
 mod schema;
 pub mod validation;
+mod executor;
 mod integrations;
 
 #[cfg(all(test, not(feature="expose-test-schema")))] mod tests;
@@ -193,13 +194,15 @@ use std::collections::HashMap;
 use rustc_serialize::json::{ToJson, Json};
 
 use parser::{parse_document_source, ParseError, Spanning, SourcePosition};
-use types::execute_validated_query;
 use validation::{RuleError, ValidatorContext, visit_all_rules};
 
 pub use ast::{ToInputValue, FromInputValue, InputValue, Type, Selection};
 pub use value::Value;
 pub use types::base::{Arguments, GraphQLType, TypeKind};
-pub use types::schema::{Executor, Registry, ExecutionResult, ExecutionError, FieldResult};
+pub use executor::{
+    Executor, Registry, ExecutionResult, ExecutionError, FieldResult,
+    execute_validated_query,
+};
 pub use types::scalars::ID;
 pub use schema::model::RootNode;
 
diff --git a/src/schema/model.rs b/src/schema/model.rs
index 2248161c..cd37df2a 100644
--- a/src/schema/model.rs
+++ b/src/schema/model.rs
@@ -3,7 +3,7 @@ use std::marker::PhantomData;
 use std::fmt;
 
 use types::base::{GraphQLType};
-use types::schema::Registry;
+use executor::Registry;
 use ast::Type;
 use schema::meta::{MetaType, ObjectMeta, PlaceholderMeta, UnionMeta, InterfaceMeta, Argument};
 
diff --git a/src/schema/schema.rs b/src/schema/schema.rs
index 2a5e0160..34fca9ca 100644
--- a/src/schema/schema.rs
+++ b/src/schema/schema.rs
@@ -1,7 +1,7 @@
 use rustc_serialize::json::ToJson;
 
 use types::base::{GraphQLType, Arguments, TypeKind};
-use types::schema::{Executor, Registry, FieldResult, ExecutionResult};
+use executor::{Executor, Registry, FieldResult, ExecutionResult};
 
 use schema::meta::{MetaType, ObjectMeta, EnumMeta, InputObjectMeta, UnionMeta, InterfaceMeta,
                    Field, Argument, EnumValue};
diff --git a/src/tests/schema.rs b/src/tests/schema.rs
index 3793cabd..210c19e2 100644
--- a/src/tests/schema.rs
+++ b/src/tests/schema.rs
@@ -1,4 +1,4 @@
-use types::schema::FieldResult;
+use executor::FieldResult;
 use tests::model::{Character, Human, Droid, Database, Episode};
 
 graphql_enum!(Episode {
diff --git a/src/types/base.rs b/src/types/base.rs
index 79e4a948..af40e608 100644
--- a/src/types/base.rs
+++ b/src/types/base.rs
@@ -4,7 +4,7 @@ use ast::{InputValue, Selection, Directive, FromInputValue};
 use value::Value;
 
 use schema::meta::{Argument, MetaType};
-use types::schema::{Executor, Registry, ExecutionResult};
+use executor::{Executor, Registry, ExecutionResult};
 use parser::Spanning;
 
 /// GraphQL type kind
diff --git a/src/types/containers.rs b/src/types/containers.rs
index 92d56e78..744d06e8 100644
--- a/src/types/containers.rs
+++ b/src/types/containers.rs
@@ -2,7 +2,7 @@ use ast::{InputValue, ToInputValue, FromInputValue, Selection};
 use value::Value;
 use schema::meta::MetaType;
 
-use types::schema::{Executor, Registry};
+use executor::{Executor, Registry};
 use types::base::{GraphQLType};
 
 impl<T, CtxT> GraphQLType<CtxT> for Option<T> where T: GraphQLType<CtxT> {
diff --git a/src/types/mod.rs b/src/types/mod.rs
index 568a6150..db97e46d 100644
--- a/src/types/mod.rs
+++ b/src/types/mod.rs
@@ -1,8 +1,5 @@
 pub mod base;
-pub mod schema;
 pub mod scalars;
 pub mod pointers;
 pub mod containers;
 pub mod utilities;
-
-pub use self::schema::execute_validated_query;
diff --git a/src/types/pointers.rs b/src/types/pointers.rs
index 63f65b70..6882d5ca 100644
--- a/src/types/pointers.rs
+++ b/src/types/pointers.rs
@@ -2,7 +2,7 @@ use ast::{Selection, InputValue, ToInputValue, FromInputValue};
 use value::Value;
 
 use schema::meta::MetaType;
-use types::schema::{Executor, Registry, ExecutionResult};
+use executor::{Executor, Registry, ExecutionResult};
 use types::base::{Arguments, GraphQLType};
 
 impl<T, CtxT> GraphQLType<CtxT> for Box<T> where T: GraphQLType<CtxT> {
diff --git a/src/types/scalars.rs b/src/types/scalars.rs
index 4f7b2074..ba1a2d6e 100644
--- a/src/types/scalars.rs
+++ b/src/types/scalars.rs
@@ -3,7 +3,7 @@ use value::Value;
 
 use schema::meta::MetaType;
 
-use types::schema::{Executor, Registry};
+use executor::{Executor, Registry};
 use types::base::GraphQLType;
 
 /// An ID as defined by the GraphQL specification
diff --git a/src/validation/rules/overlapping_fields_can_be_merged.rs b/src/validation/rules/overlapping_fields_can_be_merged.rs
index 8aca41a0..88000c49 100644
--- a/src/validation/rules/overlapping_fields_can_be_merged.rs
+++ b/src/validation/rules/overlapping_fields_can_be_merged.rs
@@ -642,7 +642,7 @@ mod tests {
     use super::ConflictReasonMessage::*;
 
     use types::base::GraphQLType;
-    use types::schema::Registry;
+    use executor::Registry;
     use types::scalars::ID;
     use schema::meta::MetaType;
 
diff --git a/src/validation/test_harness.rs b/src/validation/test_harness.rs
index 77a5abd1..96277c17 100644
--- a/src/validation/test_harness.rs
+++ b/src/validation/test_harness.rs
@@ -1,7 +1,7 @@
 use parser::parse_document_source;
 use ast::{FromInputValue, InputValue};
 use types::base::GraphQLType;
-use types::schema::Registry;
+use executor::Registry;
 use types::scalars::ID;
 use schema::model::{DirectiveType, DirectiveLocation, RootNode};
 use schema::meta::{EnumValue, MetaType};