2592506288
* Test the mentat_query directory on Travis.
* Export common types from edn.
This allows you to write
use edn::{PlainSymbol,Keyword};
instead of
use edn:🔣:{PlainSymbol,Keyword};
* Add an edn::Value::is_keyword predicate.
* Clean up query, preparing for query-parser.
* Make EDN keywords and symbols take Into<String> arguments.
* Implement parsing of simple :find lists.
* Rustfmt query-parser. Split find and query.
* Review comment: values_to_variables now returns a NotAVariableError on failure.
* Review comment: rename gimme to to_parsed_value.
* Review comment: add comments.
35 lines
1.3 KiB
Rust
35 lines
1.3 KiB
Rust
// Copyright 2016 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 mentat_query_parser;
|
|
extern crate mentat_query;
|
|
extern crate edn;
|
|
|
|
use mentat_query::FindSpec::*;
|
|
use mentat_query::Element;
|
|
use mentat_query::Variable;
|
|
use edn::PlainSymbol;
|
|
|
|
///! N.B., parsing a query can be done without reference to a DB.
|
|
///! Processing the parsed query into something we can work with
|
|
///! for planning involves interrogating the schema and idents in
|
|
///! the store.
|
|
///! See <https://github.com/mozilla/mentat/wiki/Querying> for more.
|
|
|
|
#[test]
|
|
fn can_parse_trivial_find() {
|
|
let find = FindScalar(Element::Variable(Variable(PlainSymbol("?foo".to_string()))));
|
|
|
|
if let FindScalar(Element::Variable(Variable(PlainSymbol(name)))) = find {
|
|
assert_eq!("?foo", name);
|
|
} else {
|
|
panic!()
|
|
}
|
|
}
|