diff --git a/Cargo.toml b/Cargo.toml index 50ebc4d..358689a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ include = ["Cargo.toml", "README.md", "LICENSE", "ACKNOWLEDGEMENTS", "src/**/*.r build = "build.rs" # LALRPOP preprocessing [lib] -name = "parser" +name = "mercator_parser" path = "src/lib.rs" [[bin]] diff --git a/src/lib.rs b/src/lib.rs index b862165..04280f6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,17 +1,57 @@ #![forbid(unsafe_code)] +//! # Mercator Parser +//! +//! Query parser for Mercator. +//! +//! ## Mercator: Spatial Index +//! +//! **Mercator** is a spatial *volumetric* index for the +//! [Human Brain Project]. It is a component of the [Knowledge Graph] +//! service, which provides the spatial anchoring for the metadata +//! registered as well as processes the volumetric queries. +//! +//! It is build on top of the Iron Sea database toolkit. +//! +//! ## Iron Sea: Database Toolkit +//! **Iron Sea** provides a set of database engine bricks, which can be +//! combined and applied on arbitrary data structures. +//! +//! Unlike a traditional database, it does not assume a specific +//! physical structure for the tables nor the records, but relies on the +//! developer to provide a set of extractor functions which are used by +//! the specific indices provided. +//! +//! This enables the index implementations to be agnostic from the +//! underlying data structure, and re-used. +//! +//! [Human Brain Project]: http://www.humanbrainproject.eu +//! [Knowledge Graph]: http://www.humanbrainproject.eu/en/explore-the-brain/search/ + #[macro_use] extern crate lalrpop_util; lalrpop_mod!(#[allow(clippy::all,unused_parens)] pub queries); // synthesized by LALRPOP +// Note: We do not enable for the whole library deny(missing_docs), as +// it requires the automatically generated parser to be documented +// as well. +// Instead we enable it per modules below, except for the tests. + +#[warn(missing_docs)] mod evaluators; +#[warn(missing_docs)] mod executors; +#[warn(missing_docs)] mod expressions; +#[warn(missing_docs)] mod predictors; +#[warn(missing_docs)] mod validators; +#[warn(missing_docs)] mod symbols; +#[warn(missing_docs)] mod types; pub use expressions::Executor;