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