From de29d4194563ca1009d97ed03b40da9a6ee6d321 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Tue, 13 Jun 2023 13:39:58 +0000 Subject: [PATCH] chore: rename dbgen package files and remove small file --- .../database/dbgen/{generator.go => dbgen.go} | 37 +++++++++++++++++ .../{generator_test.go => dbgen_test.go} | 0 coderd/database/dbgen/take.go | 40 ------------------- 3 files changed, 37 insertions(+), 40 deletions(-) rename coderd/database/dbgen/{generator.go => dbgen.go} (96%) rename coderd/database/dbgen/{generator_test.go => dbgen_test.go} (100%) delete mode 100644 coderd/database/dbgen/take.go diff --git a/coderd/database/dbgen/generator.go b/coderd/database/dbgen/dbgen.go similarity index 96% rename from coderd/database/dbgen/generator.go rename to coderd/database/dbgen/dbgen.go index c21a7952906e4..604873fa2afb6 100644 --- a/coderd/database/dbgen/generator.go +++ b/coderd/database/dbgen/dbgen.go @@ -525,3 +525,40 @@ func must[V any](v V, err error) V { } return v } + +func takeFirstIP(values ...net.IPNet) net.IPNet { + return takeFirstF(values, func(v net.IPNet) bool { + return len(v.IP) != 0 && len(v.Mask) != 0 + }) +} + +// takeFirstSlice implements takeFirst for []any. +// []any is not a comparable type. +func takeFirstSlice[T any](values ...[]T) []T { + return takeFirstF(values, func(v []T) bool { + return len(v) != 0 + }) +} + +// takeFirstF takes the first value that returns true +func takeFirstF[Value any](values []Value, take func(v Value) bool) Value { + for _, v := range values { + if take(v) { + return v + } + } + // If all empty, return the last element + if len(values) > 0 { + return values[len(values)-1] + } + var empty Value + return empty +} + +// takeFirst will take the first non-empty value. +func takeFirst[Value comparable](values ...Value) Value { + var empty Value + return takeFirstF(values, func(v Value) bool { + return v != empty + }) +} diff --git a/coderd/database/dbgen/generator_test.go b/coderd/database/dbgen/dbgen_test.go similarity index 100% rename from coderd/database/dbgen/generator_test.go rename to coderd/database/dbgen/dbgen_test.go diff --git a/coderd/database/dbgen/take.go b/coderd/database/dbgen/take.go deleted file mode 100644 index 6792e5bb83b4b..0000000000000 --- a/coderd/database/dbgen/take.go +++ /dev/null @@ -1,40 +0,0 @@ -package dbgen - -import "net" - -func takeFirstIP(values ...net.IPNet) net.IPNet { - return takeFirstF(values, func(v net.IPNet) bool { - return len(v.IP) != 0 && len(v.Mask) != 0 - }) -} - -// takeFirstSlice implements takeFirst for []any. -// []any is not a comparable type. -func takeFirstSlice[T any](values ...[]T) []T { - return takeFirstF(values, func(v []T) bool { - return len(v) != 0 - }) -} - -// takeFirstF takes the first value that returns true -func takeFirstF[Value any](values []Value, take func(v Value) bool) Value { - for _, v := range values { - if take(v) { - return v - } - } - // If all empty, return the last element - if len(values) > 0 { - return values[len(values)-1] - } - var empty Value - return empty -} - -// takeFirst will take the first non-empty value. -func takeFirst[Value comparable](values ...Value) Value { - var empty Value - return takeFirstF(values, func(v Value) bool { - return v != empty - }) -} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy