| ... | @@ -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 | |
| | 230 | pub 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 | } |