1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#![doc(html_root_url = "https://docs.rs/fera/0.2.0/")]
//! An aggregation of algorithms, data structures and supporting crates.
//!
//! This crate does not directly provides any item, it only reexports modules corresponding to
//! others crates. Each module is enable with a feature with the same name. All features are
//! disable by default. To avoid longer compile times, it is recommend to enable only the features
//! that will be used.
//!
//! # Example
//!
//! To use `ext` and `fun` crates in this example:
//!
//! ```rust
//! extern crate fera;
//!
//! use fera::ext::VecExt;
//! use fera::fun::vec;
//!
//! # fn main() {
//! assert_eq!(vec![3, 2, 1], vec(1..4).reversed());
//! # }
//! ```
//!
//! it is necessary to add this to `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! fera = {
//! version = "0.1",
//! features = ["ext", "fun"]
//! }
//! ```
macro_rules! crate_as_mod {
($c:ident, $m:ident, $f:expr, $d:expr) => {
#[cfg(feature = $f)]
extern crate $c;
#[doc = $d]
#[cfg(feature = $f)]
pub mod $m {
pub use $c::*;
}
};
}
crate_as_mod!(
fera_array,
array,
"array",
"Array traits and implementations."
);
crate_as_mod!(fera_ext, ext, "ext", "Extension traits for std types.");
crate_as_mod!(fera_fun, fun, "fun", "Free function for fun programming.");
crate_as_mod!(
fera_graph,
graph,
"graph",
"Graph data structures and algorithms."
);
crate_as_mod!(
fera_optional,
optional,
"optional",
"Generic optional value."
);
crate_as_mod!(fera_tree, tree, "tree", "Tree data structures.");
crate_as_mod!(
fera_unionfind,
unionfind,
"unionfind",
"Union find data structure."
);
// TODO: create a prelude including all others prelude?