| Crates.io | likely_stable |
| lib.rs | likely_stable |
| version | 0.1.3 |
| created_at | 2021-03-09 12:10:04.852802+00 |
| updated_at | 2024-12-11 22:59:26.418539+00 |
| description | likely and unlikely compiler hints in stable rust |
| homepage | |
| repository | https://gitlab.com/okannen/likely |
| max_upload_size | |
| id | 366278 |
| size | 33,127 |
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));
Add this to your Cargo.toml:
[dependencies]
likely_stable = "0.1"