fluid/lib.rs
1//! [](https://crates.io/crates/fluid)
2//! [](https://docs.rs/fluid)
3//! [](https://gitlab.com/Boiethios/fluid-rs/blob/master/src)
4//!
5//! `fluid` is a library to write human readable tests.
6//!
7//! This crate is in alpha state. It is fully usable, but one can (rightfully)
8//! think that there are incomplete or missing features. The maintainer would
9//! be very happy if he was given some feedback, issues, pull requests, etc.
10//!
11//! __________
12//!
13//! `fluid` is a crate to make the tests more readable and easier to write,
14//! mainly inspired by [xUnit](https://xunit.github.io/).
15//! It is still in an unstable state. Be adviced that in future alphas
16//! — let alone in the release — it could/will be very different.
17//!
18//! Wiki
19//! ----
20//!
21//! Detailed information is in the [wiki](https://docs.rs/fluid/latest/fluid/wiki/index.html).
22//!
23//! Goals
24//! -----
25//!
26//! The current goals are to provide:
27//!
28//! - ☑ Easily readable tests: they should be read like english sentences.
29//! - ☑ Nice and understandable error messages.
30//! - ☐ The most possible useful assertions for common cases: numbers, `Iterators`, `Options`, `Results`, etc.
31//! - ☐ A full test framework that launches the tests, displays the failures, etc.
32//! Since this feature is not stabilized, it will be gated in the nightly compiler.
33//!
34//! Non-goals:
35//!
36//! - Run the tests fast: under the hood, there are some code generation at compile-time,
37//! especially for the `#[theory]` and/or `#[session]` tests. This will never be as fast as the standard tests.
38//!
39//! Known bugs/limitations
40//! ----------------------
41//!
42//! - The stringification of the left element is not perfect when the procedural macros are used.
43//! That is because there is no way to render the token as they were written by the user (as far as I know).
44//! - Hygiene issue. For now, every span is located at the macro call site.
45//! That means that the tests report a failure at the `#[fact]`, `#[theory]` or `#[session]` line.
46//!
47//! Changelog
48//! ---------
49//!
50//! See the [dedicated file](https://gitlab.com/Boiethios/fluid-rs/blob/master/CHANGELOG.md).
51//!
52//! Roadmap
53//! ---------
54//!
55//! See the [dedicated file](https://gitlab.com/Boiethios/fluid-rs/blob/master/ROADMAP.md).
56
57#![deny(unused)]
58#![forbid(
59 missing_docs,
60 unsafe_code,
61 missing_debug_implementations,
62 bare_trait_objects
63)]
64
65mod assertions;
66pub mod core;
67pub mod prelude;
68#[cfg(test)]
69#[rustfmt::skip]
70mod tests;
71pub mod traits;
72pub mod wiki;