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

no-std branch_hints

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

15 releases

Uses old Rust 2015

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

#919 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

999 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