authorgravatar for voroskoi@gmail.comVÖRÖSKŐI András <voroskoi@gmail.com> 2022-07-25 06:57:04+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-07-25 18:12:32+03:00
log370793a36b3de34ead8456553a2aa2c56f0d3de8
tree86309f221fccbd8f769464901cc95374dcf6f63d
parent9a3dacc00ed805cb70b3b656f28de73185206b13

PriorityDequeue: use compareFn in update() method


1 files changed, 6 insertions(+), 1 deletions(-)

lib/std/priority_dequeue.zig+6-1
...@@ -391,7 +391,12 @@ pub fn PriorityDequeue(comptime T: type, comptime Context: type, comptime compar...@@ -391,7 +391,12 @@ pub fn PriorityDequeue(comptime T: type, comptime Context: type, comptime compar
391 }391 }
392392
393 pub fn update(self: *Self, elem: T, new_elem: T) !void {393 pub fn update(self: *Self, elem: T, new_elem: T) !void {
394 var old_index: usize = std.mem.indexOfScalar(T, self.items[0..self.len], elem) orelse return error.ElementNotFound;394 const old_index = blk: {
395 for (self.items) |item, idx| {
396 if (compareFn(self.context, item, elem).compare(.eq)) break :blk idx;
397 }
398 return error.ElementNotFound;
399 };
395 _ = self.removeIndex(old_index);400 _ = self.removeIndex(old_index);
396 self.addUnchecked(new_elem);401 self.addUnchecked(new_elem);
397 }402 }