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 standard library.
std › priority_dequeue › PriorityDequeue › getStartForSiftUp Private Function getStartForSiftUp Doc Source Private Function std.priority_dequeue.PriorityDequeue.getStartForSiftUp
fn getStartForSiftUp (self : *const Self , child : T , index : usize ) StartIndexAndLayer Params self : *const Self child : T index : usize File priority_dequeue.zig: 90
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 fn getStartForSiftUp (self : *const Self , child : T , index : usize ) StartIndexAndLayer {
const child_index = index ;
const parent_index = parentIndex (child_index );
const parent = self .items [parent_index ];
const min_layer = self .nextIsMinLayer ();
const order = compareFn (self .context , child , parent );
if ((min_layer and order == .gt ) or (!min_layer and order == .lt )) {
// We must swap the item with it's parent if it is on the "wrong" layer
self .items [parent_index ] = child ;
self .items [child_index ] = parent ;
return .{
.index = parent_index ,
.min_layer = !min_layer ,
};
} else {
return .{
.index = child_index ,
.min_layer = min_layer ,
};
}
}