[](LICENSE-MIT)
[](LICENSE-APACHE)
[](https://docs.rs/likely_stable)
[](https://crates.io/crates/likely_stable)
This crates brings [likely](core::intrinsics::likely)
and [unlikely](core::intrinsics::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;
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;
|| println!("unlikely"),
|v| println!("likely {}",v));
```
# Usage
Add this to your `Cargo.toml`:
```toml
[dependencies]
likely_stable = "0.1"
```