likely_stable

Crates.iolikely_stable
lib.rslikely_stable
version0.1.2
sourcesrc
created_at2021-03-09 12:10:04.852802
updated_at2021-03-09 15:01:09.200096
descriptionlikely and unlikely compiler hints in stable rust
homepage
repositoryhttps://gitlab.com/okannen/likely
max_upload_size
id366278
size32,077
Olivier (Kannen)

documentation

README

LICENSE LICENSE Documentation Crates.io Version

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));

Usage

Add this to your Cargo.toml:

[dependencies]
likely_stable = "0.1"
Commit count: 7

cargo fmt