authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-06-05 13:47:01 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-06-05 13:47:01 -07:00
loga236e1a08006fcdd61c666d2b4775c8161d7e709
tree58e8afece9a54d26a522ef968ad1aa47c5ce2bf0
parent09a26d4f28ed44334df7fa5a77e3d6c3b016e090

add sortBy


1 files changed, 8 insertions(+), 0 deletions(-)

src/lib.zig+8
...@@ -226,3 +226,11 @@ pub fn ptrCast(comptime T: type, ptr: *anyopaque) *T {...@@ -226,3 +226,11 @@ pub fn ptrCast(comptime T: type, ptr: *anyopaque) *T {
226 if (@alignOf(T) == 0) @compileError(@typeName(T));226 if (@alignOf(T) == 0) @compileError(@typeName(T));
227 return @ptrCast(*T, @alignCast(@alignOf(T), ptr));227 return @ptrCast(*T, @alignCast(@alignOf(T), ptr));
228}228}
229
230pub fn sortBy(comptime T: type, items: []T, comptime field: std.meta.FieldEnum(T)) void {
231 std.sort.sort(T, items, {}, struct {
232 fn f(_: void, lhs: T, rhs: T) bool {
233 return @field(lhs, @tagName(field)) < @field(rhs, @tagName(field));
234 }
235 }.f);
236}