Crate likely_stable[−][src]
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));
Macros
if_likely | If statement which inform the compiler that the first branch will be the most taken branch |
if_unlikely | If statement which inform the compiler that the first branch will be the most taken branch |
Traits
LikelyBool | Likely trait for bool |
LikelyOption | Likely trait for Options |
LikelyResult | Likely trait for Result |
Functions
likely | Brings likely to stable rust. |
unlikely | Brings unlikely to stable rust. |