Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › sort/ › block.zig › binaryFirst
binaryFirst
block.binaryFirst
fn binaryFirst (
comptime T : type ,
items : []T ,
value : T ,
range : Range ,
context : anytype ,
comptime lessThan : fn (@TypeOf (context ), lhs : T , rhs : T ) bool ,
) usize
File
Code
fn binaryFirst (
comptime T : type ,
items : []T ,
value : T ,
range : Range ,
context : anytype ,
comptime lessThan : fn (@TypeOf (context ), lhs : T , rhs : T ) bool ,
) usize {
var curr = range .start ;
var size = range .length ();
if (range .start >= range .end ) return range .end ;
while (size > 0 ) {
const offset = size % 2 ;
size /= 2 ;
const mid_item = items [curr + size ];
if (lessThan (context , mid_item , value )) {
curr += size + offset ;
}
}
return curr ;
}