From 16275853eb8a43e0b113d476b896de53585c1281 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Mon, 20 Nov 2023 12:22:28 +0000 Subject: [bugfix] self-referencing collection pages for status replies (#2364) --- internal/paging/boundary.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'internal/paging/boundary.go') diff --git a/internal/paging/boundary.go b/internal/paging/boundary.go index 15af65e0c..83d265515 100644 --- a/internal/paging/boundary.go +++ b/internal/paging/boundary.go @@ -131,3 +131,20 @@ func (b Boundary) Find(in []string) int { } return -1 } + +// Boundary_FindFunc is functionally equivalent to Boundary{}.Find() but for an arbitrary type with ID. +// Note: this is not a Boundary{} method as Go generics are not supported in method receiver functions. +func Boundary_FindFunc[T any](b Boundary, in []T, get func(T) string) int { //nolint:revive + if get == nil { + panic("nil function") + } + if b.Value == "" { + return -1 + } + for i := range in { + if get(in[i]) == b.Value { + return i + } + } + return -1 +} -- cgit v1.2.3