Convert values to bool, kind of like C, eh?
Eh roughly follows the implicit conversion rules for C to _Bool
or C++ to bool, but Rust requires an explicit conversion. Integer
0, floating-point 0.0, and null pointers are false, and all other
values are true.
As a Rust-specific extension, this is also implemented for Option<T> and
Result<T, E>. It returns true when the ? operator would unwrap a T
value, and false when ? would cause an early return.
Eh does not implement further boolean conversions of other languages,
especially since they're not universal. For example:
- JavaScript converts NaN to
false, different than C and C++ (andeh). - JavaScript converts empty
[]and{}totrue, but in Python they'refalse. - Many languages convert empty strings to
falseand non-empty strings totrue, but"0"is alsofalsein Perl and PHP.
The name is a play on the Canadian "eh", turning a declarative sentence into a question.
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in eh by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.