chore(settings): use generics for helping functions (#1427)

This commit is contained in:
Julio Gutierrez
2023-05-20 20:37:23 +00:00
committed by GitHub
parent 86ec75722a
commit 5200ee5722
33 changed files with 362 additions and 832 deletions

View File

@@ -1,6 +1,7 @@
package storage
import (
"fmt"
"strings"
"github.com/qdm12/gluetun/internal/configuration/settings"
@@ -89,7 +90,7 @@ func filterServer(server models.Server,
return true
}
if filterByPossibilitiesUint16(server.Number, selection.Numbers) {
if filterByPossibilities(server.Number, selection.Numbers) {
return true
}
@@ -106,25 +107,12 @@ func filterServer(server models.Server,
return false
}
func filterByPossibilities(value string, possibilities []string) (filtered bool) {
func filterByPossibilities[T string | uint16](value T, possibilities []T) (filtered bool) {
if len(possibilities) == 0 {
return false
}
for _, possibility := range possibilities {
if strings.EqualFold(value, possibility) {
return false
}
}
return true
}
// TODO merge with filterByPossibilities with generics in Go 1.18.
func filterByPossibilitiesUint16(value uint16, possibilities []uint16) (filtered bool) {
if len(possibilities) == 0 {
return false
}
for _, possibility := range possibilities {
if value == possibility {
if strings.EqualFold(fmt.Sprint(value), fmt.Sprint(possibility)) {
return false
}
}