likely_stable-0.1.0 has been yanked.
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 [macro@if_likely] and [macro@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:
[]
= "0.1"