From cec51d4ddac2cd0e943cec254abb51a70dab7251 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Fri, 29 May 2026 19:59:02 -0700 Subject: Make quickSelect generic --- sixel.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sixel.go b/sixel.go index f95c0ef..1a0371a 100644 --- a/sixel.go +++ b/sixel.go @@ -37,7 +37,7 @@ func lcg(state *uint64) int { return int(s >> 33) } -func partition(a []color.RGBA, lo, hi, pivotIndex int, cmp func(color.RGBA, color.RGBA) int) (int, int) { +func partition[S ~[]E, E any](a S, lo, hi, pivotIndex int, cmp func(E, E) int) (int, int) { pivot := a[pivotIndex] lt := lo eq := lo @@ -58,7 +58,7 @@ func partition(a []color.RGBA, lo, hi, pivotIndex int, cmp func(color.RGBA, colo return lt, gt } -func quickSelect(list []color.RGBA, k int, cmp func(color.RGBA, color.RGBA) int, randState *uint64) { +func quickSelect[S ~[]E, E any](list S, k int, cmp func(E, E) int, randState *uint64) { left, right := 0, len(list)-1 for { if left == right { -- cgit v1.3.1