Ctrl K
ComunidadGuías…

bldr/util/merge/list.go

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package merge

import (
	"cmp"
	"slices"
)

// MergeAndSortSlices merges the slices and sorts them iif dirty.
func MergeAndSortSlices[S ~[]E, E cmp.Ordered](mergeTo *S, mergeFrom S) {
	var dirty bool
	dest := *mergeTo
	for _, value := range mergeFrom {
		var zero E
		if value != zero && !slices.Contains(dest, value) {
			dirty = true
			dest = append(dest, value)
		}
	}
	if dirty {
		slices.Sort(dest)
		*mergeTo = dest
	}
}