# as_bool
Provides an expanded notion of what is *true* and what is *false*.
Specifically with the AsBool trait, which an implementing type can
use to express how it should be represented in a boolean context.
This crate also provides implementations of AsBool for Rust's builtin types
and collections from the Standard Library. These implementations provide a
truth table similar to the *Groovy Truth* implemented in the Groovy
programming language. The truth table can be described as follow:
* booleans behave as expected.
* all non-zero numbers are `true`.
* `0` , `0.0` , `f32::NAN`, `f64::NAN`, and `'\0'` are `false`.
* non-empty strings are `true`.
* empty strings are `false`.
* non-empty collections are `true`.
* empty collections are `false`.
* `None` is always `false`.
* `Err` is always `false`.
* `Ok` and `Some` are unwrapped and the contained item is evaluated according
to the preceding rules.
Documentation: https://docs.rs/as_bool