#bool #conversion #truthy

no-std eh

Convert values to bool, kind of like C, eh?

1 unstable release

0.1.0 Sep 19, 2019

#11 in #bool


63 lines


Latest Version docs

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++ (and eh).
  • JavaScript converts empty [] and {} to true, but in Python they're false.
  • Many languages convert empty strings to false and non-empty strings to true, but "0" is also false in 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

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.

No runtime deps