likely

Crates.iolikely
lib.rslikely
version0.2.0
sourcesrc
created_at2018-07-30 07:16:34.249337
updated_at2020-12-08 10:35:12.650912
descriptionlikely
homepagehttps://github.com/lemonrock/likely
repositoryhttps://github.com/lemonrock/likely.git
max_upload_size
id76569
size26,422
Raphael Cohn (raphaelcohn)

documentation

README

likely

likely is a rust crate used to provide macro wrappers around the intrinsics ::std::intrinsic::likely and ::std::intrinsic::unlikely, which themselves are hints to the CPU's branch predictor.

These hints should only be used when the vast majority of cases would satisfy them. A typicaly example might be a highly unusual error condition, or an extreme value or outlier in a range. Another common scenario is dealing with return codes from common libc functions, many of which are highly unlikely to occur (eg EINVAL for many such functions).

Note that using these macro wrappers requires compiling with nightly.

Using It.

Firstly, Include it

To include it, add the following to your Cargo.toml:-

[dependencies]
likely = "^0.1"

In your crate's lib.rs, add:-

`#![feature(core_intrinsics)]`

...

#[macro_use] extern crate likely;

Secondly, use it with if statements

fn example(age: u8)
{
	if likely!(age <= 70)
	{
		println!("Not yet entitled to this welfare benefit")
	}
	else if unlikely!(age == 99)
	{
		println!("You are entitled to a birthday card from the Queen for your next birthday")
	}
}

Licensing

The license for this project is MIT.

Commit count: 7

cargo fmt