Crate bifurcate

Source
Expand description

§Bifurcate

This is a small crate with the only purpose to provide and efficient and really general implementation of bisect_left, bisect_right and equal_range for some obvious types, while also giving the possibility of other types using the implementation.

The main trait, Bisectable, is implemented for Range, slice and array as a convenience. Also, the slice implementation can serve as a simple implementation blueprint for other types.

§Note

This crate polyfills the Step trait, as it’s unstable see #42168. This can be disabled via the nightly_step feature flag.

Related to the above, there’s the nightly_ascii feature flag, which enables the implementation for Step for the nightly only AsciiChar, see #110998, which also implements the nightly only trait Step.

Traits§

Bisectable
Types that can be searched via bisection either directly or indirectly.
MidPoint
Types that have a notion of mid point between two objects.
Step
Objects that have a notion of successor and predecessor operations.