From ccdd17551a3347472b658cb0a7ce9862a1b61380 Mon Sep 17 00:00:00 2001 From: Grisha Kruglov Date: Wed, 8 Aug 2018 11:56:27 -0700 Subject: [PATCH] Pre: Move query-algebrizer/error.rs into query-algebrizer-traits --- Cargo.toml | 3 +++ query-algebrizer-traits/Cargo.toml | 18 ++++++++++++++++++ .../src => query-algebrizer-traits}/errors.rs | 0 query-algebrizer-traits/lib.rs | 18 ++++++++++++++++++ query-algebrizer/Cargo.toml | 4 +++- query-algebrizer/src/clauses/convert.rs | 2 +- query-algebrizer/src/clauses/fulltext.rs | 2 +- query-algebrizer/src/clauses/ground.rs | 2 +- query-algebrizer/src/clauses/inputs.rs | 2 +- query-algebrizer/src/clauses/mod.rs | 2 +- query-algebrizer/src/clauses/not.rs | 4 ++-- query-algebrizer/src/clauses/or.rs | 2 +- query-algebrizer/src/clauses/predicate.rs | 2 +- query-algebrizer/src/clauses/resolve.rs | 2 +- query-algebrizer/src/clauses/tx_log_api.rs | 2 +- query-algebrizer/src/clauses/where_fn.rs | 2 +- query-algebrizer/src/lib.rs | 9 +++------ query-algebrizer/src/validate.rs | 2 +- query-algebrizer/tests/fulltext.rs | 1 + query-algebrizer/tests/ground.rs | 6 +++++- query-algebrizer/tests/predicate.rs | 6 +++++- query-algebrizer/tests/type_reqs.rs | 1 + query-algebrizer/tests/utils/mod.rs | 5 ++++- src/errors.rs | 10 ++++++---- src/lib.rs | 3 ++- tests/query.rs | 6 +++--- 26 files changed, 85 insertions(+), 31 deletions(-) create mode 100644 query-algebrizer-traits/Cargo.toml rename {query-algebrizer/src => query-algebrizer-traits}/errors.rs (100%) create mode 100644 query-algebrizer-traits/lib.rs diff --git a/Cargo.toml b/Cargo.toml index 5ea00d1d..dca49e64 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -61,6 +61,9 @@ path = "db-traits" [dependencies.mentat_query_algebrizer] path = "query-algebrizer" +[dependencies.query_algebrizer_traits] +path = "query-algebrizer-traits" + [dependencies.mentat_query_projector] path = "query-projector" diff --git a/query-algebrizer-traits/Cargo.toml b/query-algebrizer-traits/Cargo.toml new file mode 100644 index 00000000..008ee267 --- /dev/null +++ b/query-algebrizer-traits/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "query_algebrizer_traits" +version = "0.0.1" +workspace = ".." + +[lib] +name = "query_algebrizer_traits" +path = "lib.rs" + +[dependencies] +failure = "0.1.1" +failure_derive = "0.1.1" + +[dependencies.edn] +path = "../edn" + +[dependencies.core_traits] +path = "../core-traits" diff --git a/query-algebrizer/src/errors.rs b/query-algebrizer-traits/errors.rs similarity index 100% rename from query-algebrizer/src/errors.rs rename to query-algebrizer-traits/errors.rs diff --git a/query-algebrizer-traits/lib.rs b/query-algebrizer-traits/lib.rs new file mode 100644 index 00000000..84c70cef --- /dev/null +++ b/query-algebrizer-traits/lib.rs @@ -0,0 +1,18 @@ +// Copyright 2018 Mozilla +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use +// this file except in compliance with the License. You may obtain a copy of the +// License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +extern crate failure; +#[macro_use] +extern crate failure_derive; + +extern crate core_traits; +extern crate edn; + +pub mod errors; diff --git a/query-algebrizer/Cargo.toml b/query-algebrizer/Cargo.toml index 3dea8b3a..cfc28a9b 100644 --- a/query-algebrizer/Cargo.toml +++ b/query-algebrizer/Cargo.toml @@ -5,7 +5,6 @@ workspace = ".." [dependencies] failure = "0.1.1" -failure_derive = "0.1.1" [dependencies.edn] path = "../edn" @@ -16,5 +15,8 @@ path = "../core" [dependencies.core_traits] path = "../core-traits" +[dependencies.query_algebrizer_traits] +path = "../query-algebrizer-traits" + [dev-dependencies] itertools = "0.7" diff --git a/query-algebrizer/src/clauses/convert.rs b/query-algebrizer/src/clauses/convert.rs index 006beb3d..d501bf91 100644 --- a/query-algebrizer/src/clauses/convert.rs +++ b/query-algebrizer/src/clauses/convert.rs @@ -30,7 +30,7 @@ use clauses::{ ConjoiningClauses, }; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; diff --git a/query-algebrizer/src/clauses/fulltext.rs b/query-algebrizer/src/clauses/fulltext.rs index 6039ce51..e26817cf 100644 --- a/query-algebrizer/src/clauses/fulltext.rs +++ b/query-algebrizer/src/clauses/fulltext.rs @@ -32,7 +32,7 @@ use clauses::{ ConjoiningClauses, }; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, BindingError, Result, diff --git a/query-algebrizer/src/clauses/ground.rs b/query-algebrizer/src/clauses/ground.rs index 062e7d1c..81dd9182 100644 --- a/query-algebrizer/src/clauses/ground.rs +++ b/query-algebrizer/src/clauses/ground.rs @@ -33,7 +33,7 @@ use clauses::{ use clauses::convert::ValueConversion; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, BindingError, Result, diff --git a/query-algebrizer/src/clauses/inputs.rs b/query-algebrizer/src/clauses/inputs.rs index 798db510..a0e07efe 100644 --- a/query-algebrizer/src/clauses/inputs.rs +++ b/query-algebrizer/src/clauses/inputs.rs @@ -19,7 +19,7 @@ use edn::query::{ Variable, }; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; diff --git a/query-algebrizer/src/clauses/mod.rs b/query-algebrizer/src/clauses/mod.rs index d860d6b7..4446e9c8 100644 --- a/query-algebrizer/src/clauses/mod.rs +++ b/query-algebrizer/src/clauses/mod.rs @@ -52,7 +52,7 @@ use edn::query::{ PatternNonValuePlace, }; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; diff --git a/query-algebrizer/src/clauses/not.rs b/query-algebrizer/src/clauses/not.rs index 223ea194..9a3a6535 100644 --- a/query-algebrizer/src/clauses/not.rs +++ b/query-algebrizer/src/clauses/not.rs @@ -16,7 +16,7 @@ use edn::query::{ use clauses::ConjoiningClauses; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; @@ -113,7 +113,7 @@ mod testing { associate_ident, }; - use errors::{ + use query_algebrizer_traits::errors::{ AlgebrizerError, }; diff --git a/query-algebrizer/src/clauses/or.rs b/query-algebrizer/src/clauses/or.rs index d84bab2d..ea055457 100644 --- a/query-algebrizer/src/clauses/or.rs +++ b/query-algebrizer/src/clauses/or.rs @@ -34,7 +34,7 @@ use clauses::{ PushComputed, }; -use errors::{ +use query_algebrizer_traits::errors::{ Result, }; diff --git a/query-algebrizer/src/clauses/predicate.rs b/query-algebrizer/src/clauses/predicate.rs index 6628959d..11bd5ecd 100644 --- a/query-algebrizer/src/clauses/predicate.rs +++ b/query-algebrizer/src/clauses/predicate.rs @@ -28,7 +28,7 @@ use clauses::ConjoiningClauses; use clauses::convert::ValueTypes; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; diff --git a/query-algebrizer/src/clauses/resolve.rs b/query-algebrizer/src/clauses/resolve.rs index dbb877c5..ee96d5d5 100644 --- a/query-algebrizer/src/clauses/resolve.rs +++ b/query-algebrizer/src/clauses/resolve.rs @@ -26,7 +26,7 @@ use edn::query::{ use clauses::ConjoiningClauses; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; diff --git a/query-algebrizer/src/clauses/tx_log_api.rs b/query-algebrizer/src/clauses/tx_log_api.rs index c502a788..e5015a39 100644 --- a/query-algebrizer/src/clauses/tx_log_api.rs +++ b/query-algebrizer/src/clauses/tx_log_api.rs @@ -24,7 +24,7 @@ use clauses::{ ConjoiningClauses, }; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, BindingError, Result, diff --git a/query-algebrizer/src/clauses/where_fn.rs b/query-algebrizer/src/clauses/where_fn.rs index 3679bbab..6150aff6 100644 --- a/query-algebrizer/src/clauses/where_fn.rs +++ b/query-algebrizer/src/clauses/where_fn.rs @@ -16,7 +16,7 @@ use clauses::{ ConjoiningClauses, }; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; diff --git a/query-algebrizer/src/lib.rs b/query-algebrizer/src/lib.rs index 5508dcf0..c9a4a1a7 100644 --- a/query-algebrizer/src/lib.rs +++ b/query-algebrizer/src/lib.rs @@ -10,18 +10,16 @@ extern crate failure; -#[macro_use] extern crate failure_derive; - extern crate edn; extern crate mentat_core; extern crate core_traits; +#[macro_use] +extern crate query_algebrizer_traits; use std::collections::BTreeSet; use std::ops::Sub; use std::rc::Rc; -#[macro_use] -mod errors; mod types; mod validate; mod clauses; @@ -51,9 +49,8 @@ use edn::query::{ WhereClause, }; -pub use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, - BindingError, Result, }; diff --git a/query-algebrizer/src/validate.rs b/query-algebrizer/src/validate.rs index 0e6c00cb..59d2dcb7 100644 --- a/query-algebrizer/src/validate.rs +++ b/query-algebrizer/src/validate.rs @@ -18,7 +18,7 @@ use edn::query::{ UnifyVars, }; -use errors::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, Result, }; diff --git a/query-algebrizer/tests/fulltext.rs b/query-algebrizer/tests/fulltext.rs index 691c9d51..1589c9f9 100644 --- a/query-algebrizer/tests/fulltext.rs +++ b/query-algebrizer/tests/fulltext.rs @@ -12,6 +12,7 @@ extern crate edn; extern crate mentat_core; extern crate core_traits; extern crate mentat_query_algebrizer; +extern crate query_algebrizer_traits; mod utils; diff --git a/query-algebrizer/tests/ground.rs b/query-algebrizer/tests/ground.rs index 82aadf2c..4f0f1718 100644 --- a/query-algebrizer/tests/ground.rs +++ b/query-algebrizer/tests/ground.rs @@ -12,6 +12,7 @@ extern crate edn; extern crate mentat_core; extern crate core_traits; extern crate mentat_query_algebrizer; +extern crate query_algebrizer_traits; mod utils; @@ -33,9 +34,12 @@ use edn::query::{ Variable, }; -use mentat_query_algebrizer::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, BindingError, +}; + +use mentat_query_algebrizer::{ ComputedTable, Known, QueryInputs, diff --git a/query-algebrizer/tests/predicate.rs b/query-algebrizer/tests/predicate.rs index 73bc8a0a..45462cb5 100644 --- a/query-algebrizer/tests/predicate.rs +++ b/query-algebrizer/tests/predicate.rs @@ -12,6 +12,7 @@ extern crate edn; extern crate mentat_core; extern crate core_traits; extern crate mentat_query_algebrizer; +extern crate query_algebrizer_traits; mod utils; @@ -34,8 +35,11 @@ use edn::query::{ Variable, }; -use mentat_query_algebrizer::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, +}; + +use mentat_query_algebrizer::{ EmptyBecause, Known, QueryInputs, diff --git a/query-algebrizer/tests/type_reqs.rs b/query-algebrizer/tests/type_reqs.rs index b7f3d555..9cad25a4 100644 --- a/query-algebrizer/tests/type_reqs.rs +++ b/query-algebrizer/tests/type_reqs.rs @@ -12,6 +12,7 @@ extern crate edn; extern crate core_traits; extern crate mentat_core; extern crate mentat_query_algebrizer; +extern crate query_algebrizer_traits; mod utils; diff --git a/query-algebrizer/tests/utils/mod.rs b/query-algebrizer/tests/utils/mod.rs index 213bfc63..411d8757 100644 --- a/query-algebrizer/tests/utils/mod.rs +++ b/query-algebrizer/tests/utils/mod.rs @@ -27,8 +27,11 @@ use edn::query::{ Keyword, }; -use mentat_query_algebrizer::{ +use query_algebrizer_traits::errors::{ AlgebrizerError, +}; + +use mentat_query_algebrizer::{ ConjoiningClauses, Known, QueryInputs, diff --git a/src/errors.rs b/src/errors.rs index 92e98c53..c6c98187 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -27,7 +27,9 @@ use mentat_core::{ }; use db_traits::errors::DbError; -use mentat_query_algebrizer; +use query_algebrizer_traits::errors::{ + AlgebrizerError, +}; use mentat_query_projector; use query_pull_traits::errors::{ PullError, @@ -102,7 +104,7 @@ pub enum MentatError { DbError(#[cause] DbError), #[fail(display = "{}", _0)] - AlgebrizerError(#[cause] mentat_query_algebrizer::AlgebrizerError), + AlgebrizerError(#[cause] AlgebrizerError), #[fail(display = "{}", _0)] ProjectorError(#[cause] mentat_query_projector::ProjectorError), @@ -142,8 +144,8 @@ impl From for MentatError { } } -impl From for MentatError { - fn from(error: mentat_query_algebrizer::AlgebrizerError) -> MentatError { +impl From for MentatError { + fn from(error: AlgebrizerError) -> MentatError { MentatError::AlgebrizerError(error) } } diff --git a/src/lib.rs b/src/lib.rs index 60e08d1b..c8437f06 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,6 +27,7 @@ extern crate core_traits; extern crate mentat_db; extern crate db_traits; extern crate mentat_query_algebrizer; +extern crate query_algebrizer_traits; extern crate mentat_query_projector; extern crate mentat_query_pull; extern crate query_pull_traits; @@ -139,7 +140,7 @@ pub use edn::{ ToMicros, ToMillis, }; -pub use mentat_query_algebrizer::AlgebrizerError; +pub use query_algebrizer_traits::errors::AlgebrizerError; pub use mentat_query_projector::{ BindingTuple, ProjectorError, diff --git a/tests/query.rs b/tests/query.rs index 99166776..fe8f70dd 100644 --- a/tests/query.rs +++ b/tests/query.rs @@ -18,7 +18,7 @@ extern crate core_traits; extern crate mentat_db; // TODO: when we switch to `failure`, make this more humane. -extern crate mentat_query_algebrizer; // For errors. +extern crate query_algebrizer_traits; // For errors; extern crate mentat_query_projector; // For errors. extern crate mentat_query_translator; // For errors. @@ -416,7 +416,7 @@ fn test_fulltext() { ]"#; let r = conn.q_once(&mut c, query, None); match r.expect_err("expected query to fail") { - MentatError::AlgebrizerError(mentat_query_algebrizer::AlgebrizerError::InvalidArgument(PlainSymbol(s), ty, i)) => { + MentatError::AlgebrizerError(query_algebrizer_traits::errors::AlgebrizerError::InvalidArgument(PlainSymbol(s), ty, i)) => { assert_eq!(s, "fulltext"); assert_eq!(ty, "string"); assert_eq!(i, 2); @@ -431,7 +431,7 @@ fn test_fulltext() { [(fulltext $ :foo/fts ?a) [[?x ?val]]]]"#; let r = conn.q_once(&mut c, query, None); match r.expect_err("expected query to fail") { - MentatError::AlgebrizerError(mentat_query_algebrizer::AlgebrizerError::InvalidArgument(PlainSymbol(s), ty, i)) => { + MentatError::AlgebrizerError(query_algebrizer_traits::errors::AlgebrizerError::InvalidArgument(PlainSymbol(s), ty, i)) => { assert_eq!(s, "fulltext"); assert_eq!(ty, "string"); assert_eq!(i, 2);