Add MapOmit, Context Parse/Serialize

This commit is contained in:
George Suntres
2026-04-23 13:17:48 -04:00
parent 1e9e43668f
commit 0ce3f3b5eb
4 changed files with 43 additions and 16 deletions

View File

@@ -43,6 +43,23 @@ func StructHasProperty(value interface{}, name string) bool {
return has
}
func MapOmit[K comparable, V any](m map[K]V, keys ...K) map[K]V {
out := make(map[K]V, len(m))
omit := make(map[K]struct{}, len(keys))
for _, k := range keys {
omit[k] = struct{}{}
}
for k, v := range m {
if _, ok := omit[k]; !ok {
out[k] = v
}
}
return out
}
// MapMerge merges maps into one.
func MapMerge[T ~map[string]any](maps...T) T {
out := make(T)