Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cuviper/eh
Convert values to bool, kind of like C, eh?
https://github.com/cuviper/eh
bool conversion rust
Last synced: 27 days ago
JSON representation
Convert values to bool, kind of like C, eh?
- Host: GitHub
- URL: https://github.com/cuviper/eh
- Owner: cuviper
- License: apache-2.0
- Created: 2019-09-19T02:04:06.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-19T02:12:54.000Z (about 5 years ago)
- Last Synced: 2024-10-05T22:57:02.071Z (about 1 month ago)
- Topics: bool, conversion, rust
- Language: Rust
- Homepage:
- Size: 6.84 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# eh
[![Latest Version]][crates.io] [![docs]][docs.rs]
Convert values to `bool`, kind of like C, eh?
[`Eh`] roughly follows the implicit conversion rules for [C to `_Bool`][C]
or [C++ to `bool`][C++], but Rust requires an explicit conversion. Integer
`0`, floating-point `0.0`, and null pointers are `false`, and all other
values are `true`.[`Eh`]: https://docs.rs/eh/0.1/eh/trait.Eh.html
[C]: https://en.cppreference.com/w/c/language/conversion#Boolean_conversion
[C++]: https://en.cppreference.com/w/cpp/language/implicit_conversion#Boolean_conversionsAs a Rust-specific extension, this is also implemented for `Option` and
`Result`. 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++ (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.## About
The name is a play on the [Canadian "eh"][eh], turning a declarative
sentence into a question.[eh]: https://en.wikipedia.org/wiki/Eh#Canada
## License
This project is licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](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.[Latest Version]: https://img.shields.io/crates/v/eh.svg
[crates.io]: https://crates.io/crates/eh
[docs]: https://docs.rs/eh/badge.svg
[docs.rs]: https://docs.rs/eh/