Expand description
Branches
branches
provides branch hinting and control functions for Rust, using built-in Rust features on stable and core::intrinsics
on nightly.
Usage
To use branches
, add the following to your Cargo.toml
file:
[dependencies]
branches = "0.1.0"
Then, import the branches
crate and use the branch detection functions like so:
use branches::likely;
fn is_even(num: i32) -> bool {
likely(num % 2 == 0)
}
Functions
The following functions are provided by branches
:
likely(b: bool) -> bool
: Returns back input value but leaves hints for the compiler that the statement is likely to be true.unlikely(b: bool) -> bool
: Returns back input value but leaves hints for the compiler that the statement is unlikely to be true.assume(b: bool)
: Assumes that theb
is always true, and will cause undefined behavior if it is not. On stable Rust, this function usescore::hint::unreachable_unchecked()
to achieve the same effect.abort()
: Aborts the execution of the process immediately and without any cleanup.
License
branches
is licensed under the MIT license. See the LICENSE
file for more information.
Functions
- Aborts the execution of the process immediately and without any cleanup.
- Informs the optimizer that a condition is always true.
- Hints to the compiler that the branch condition is likely to be true. Returns the value passed to it.
- Hints to the compiler that the branch condition is unlikely to be true. Returns the value passed to it.