fluid/
lib.rs

1//! [![Latest Version](https://img.shields.io/crates/v/fluid.svg)](https://crates.io/crates/fluid)
2//! [![Documentation](https://img.shields.io/badge/api-rustdoc-purple.svg)](https://docs.rs/fluid)
3//! [![Lines of Code](https://tokei.rs/b1/gitlab/Boiethios/fluid-rs)](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;