Easy-cast
=========
[](https://github.com/kas-gui/easy-cast/actions)
[](https://docs.rs/easy-cast)
Type conversion, success expected
Use the `Conv` and `Cast` traits when:
- `From` and `Into` are not enough
- it is expected that the value can be represented exactly by the target type
- you could use `as`, but want some assurance it's doing the right thing
- you are converting numbers (future versions *might* consider supporting
other conversions)
Use the `ConvFloat` and `CastFloat` traits when:
- You are converting from `f32` or `f64`
- You specifically want the nearest or ceiling or floor, but don't need
detailed control over rounding (e.g. round-to-even)
## Assertions
All type conversions which are potentially fallible assert on failure in
debug builds. In release builds assertions may be omitted, thus making
incorrect conversions possible.
If the `always_assert` feature flag is set, assertions will be turned on in
all builds. Some additional feature flags are available for finer-grained
control (see [Cargo.toml](Cargo.toml)).
## MSRV and no_std
The Minumum Supported Rust Version is 1.32.0 (first release of Edition 2018).
By default, `std` support is required. With default features disabled `no_std`
is supported, but the `ConvFloat` and `CastFloat` traits are unavailable.
Enabling the `libm` feature will re-enable these traits.
Copyright and Licence
-------
The [COPYRIGHT](COPYRIGHT) file includes a list of contributors who claim
copyright on this project. This list may be incomplete; new contributors may
optionally add themselves to this list.
The easy-cast library is published under the terms of the Apache License, Version 2.0.
You may obtain a copy of this licence from the [LICENSE](LICENSE) file or on
the following webpage: <https://www.apache.org/licenses/LICENSE-2.0>