branch_hints

Crates.iobranch_hints
lib.rsbranch_hints
version
sourcesrc
created_at2022-12-22 13:46:54.294985
updated_at2024-12-18 18:49:56.467432
descriptionCrate that provides likely and unlikely branch hint functions in stable Rust.
homepage
repositoryhttps://github.com/JSorngard/branch_hints
max_upload_size
id743896
Cargo.toml error:TOML parse error at line 19, column 1 | 19 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Johanna Sörngård (JSorngard)

documentation

README

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.
Commit count: 73

cargo fmt