Crates.io | likely_stable |
lib.rs | likely_stable |
version | 0.1.2 |
source | src |
created_at | 2021-03-09 12:10:04.852802 |
updated_at | 2021-03-09 15:01:09.200096 |
description | likely and unlikely compiler hints in stable rust |
homepage | |
repository | https://gitlab.com/okannen/likely |
max_upload_size | |
id | 366278 |
size | 32,077 |
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"