1 unstable release
0.1.0 | Sep 19, 2019 |
---|
#323 in No standard library
8KB
63 lines
eh
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.
Exclusions
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
false
and non-empty strings totrue
, but"0"
is alsofalse
in Perl and PHP.
About
The name is a play on the Canadian "eh", turning a declarative sentence into a question.
License
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.
Contribution
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.