#branch #hint #intrinsics #likely #no-alloc

no-std branch_hints

Crate that provides likely and unlikely branch hint functions in stable Rust

16 releases

0.4.11 Dec 18, 2024
0.4.10 Nov 20, 2024
0.4.3 Jun 24, 2024
0.4.0 Feb 20, 2024
0.1.2 Dec 22, 2022

#819 in Rust patterns

Download history 1/week @ 2024-09-24 2/week @ 2024-10-01 12/week @ 2024-10-29 154/week @ 2024-11-05 1/week @ 2024-11-12 799/week @ 2024-11-19 33/week @ 2024-11-26 111/week @ 2024-12-17 9/week @ 2024-12-24

120 downloads per month
Used in chute

MIT/Apache

8KB

branch_hints

Crates.io Version docs.rs Static Badge

This crate provides the functions likely and unlikely that work as compiler hints for branching.

These functions enable constructions like

if likely(condition) {
    // main code
} else {
    // error handling code
}

and they should be optimized away by the compiler.

Credit

The functions are taken directly from the hashbrown crate and this crate simply exposes them, all credit belongs to the hashbrown authors.

Note

This is a very minimal crate. If you want more comprehensive functionality, take a look at the likely_stable crate.

Verify for yourself with benchmarks if these functions do anything for you, as even the unstable intrinsics sometimes don't do anything: https://github.com/rust-lang/rust/issues/88767. This implementation of them was removed from hashbrown for this reason: https://github.com/rust-lang/hashbrown/issues/482.


License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps