2 releases
0.1.3 | Dec 11, 2024 |
---|---|
0.1.2 | Mar 9, 2021 |
0.1.1 |
|
0.1.0 |
|
#136 in Hardware support
16,144 downloads per month
Used in 6 crates
(4 directly)
31KB
674 lines
This crates brings likely and unlikely branch prediction hints to stable rust
use likely_stable::{likely,unlikely};
use rand::random;
if likely(random::<i32>() > 10) {
println!("likely!")
} else {
println!("unlikely!")
}
It also provides if_likely
and if_unlikely
for branch prediction
for if let
statements.
use likely_stable::if_likely;
use rand::random;
let v = Some(random()).filter(|v:&i32| *v > 10);
if_likely!{let Some(v) = v => {
println!("likely!")
} else {
println!("unlikely!")
}};
Moreover traits LikelyBool
, LikelyOption
and LikelyResult
provides likely
and unlikely versions of the methods commonly used for types bool
, Option
and
Result
use likely_stable::LikelyOption;
use rand::random;
let v = Some(random()).filter(|v:&i32| *v > 10);
v.map_or_else_likely(
|| println!("unlikely"),
|v| println!("likely {}",v));
Usage
Add this to your Cargo.toml
:
[dependencies]
likely_stable = "0.1"
No runtime deps
~9KB