675a865896
* Part 1: Extract low-level test framework into mentat_db::debug for re-use. * Part 2: Improve assert_matches!. This corrects an incorrect pattern: a conversion method taking &self but returning an owned value should be named like `to_FOO(&self) -> FOO`. (A reference-to-reference conversion should be named like `as_FOO(&self) -> &FOO`. A consuming conversion should be named like `into_FOO(self) -> FOO`.) In addition, this pushes the conversion via `to_edn` into the `assert_matches!` macro, which lets consumers get a real data structure (say, `Datoms`) and use it directly before or after `assert_matches!`. (Currently, consumers get back `edn::Value` instances, which aren't nearly as pleasant to use as real data structures.) Co-authored-by: Grisha Kruglov <gkruglov@mozilla.com> * Part 3: Use mentat_db::debug framework in Tolstoy crate. The advantage of this approach is that compiling Tolstoy (or anything that's not db, really) can be quite a bit faster than compiling db.
51 lines
1.4 KiB
Rust
51 lines
1.4 KiB
Rust
// 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;
|
|
|
|
#[macro_use]
|
|
extern crate lazy_static;
|
|
|
|
#[macro_use]
|
|
extern crate serde_derive;
|
|
|
|
extern crate edn;
|
|
|
|
extern crate hyper;
|
|
// TODO https://github.com/mozilla/mentat/issues/569
|
|
// extern crate hyper_tls;
|
|
extern crate tokio_core;
|
|
extern crate futures;
|
|
extern crate serde;
|
|
extern crate serde_cbor;
|
|
extern crate serde_json;
|
|
|
|
// See https://github.com/rust-lang/rust/issues/44342#issuecomment-376010077.
|
|
#[cfg_attr(test, macro_use)] extern crate log;
|
|
#[cfg_attr(test, macro_use)] extern crate mentat_db;
|
|
|
|
extern crate mentat_core;
|
|
extern crate rusqlite;
|
|
extern crate uuid;
|
|
|
|
#[macro_use]
|
|
pub mod errors;
|
|
pub mod schema;
|
|
pub mod metadata;
|
|
pub mod tx_processor;
|
|
pub mod syncer;
|
|
pub mod tx_mapper;
|
|
pub use syncer::Syncer;
|
|
pub use errors::{
|
|
TolstoyError,
|
|
Result,
|
|
};
|