package json import ( "sync" "gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/temp_models/db" ) func OwnershipToDB(dest *[]db.OwnershipString, src map[string]int) { *dest = make([]db.OwnershipString, len(src)) i := 0 for k, v := range src { (*dest)[i].Key = k (*dest)[i].Value = v i++ } } func HotbarToDB(dest *[]db.UserHotbar, src map[int]string) { *dest = make([]db.UserHotbar, len(src)) i := 0 for k, v := range src { (*dest)[i].Key = k (*dest)[i].Value = v i++ } } func PackageWarningsToDB(dest *[]*db.PackageWarning, src map[string]PackageWarningsData) { *dest = make([]*db.PackageWarning, len(src)) i := 0 for k, v := range src { (*dest)[i].Key = k v.ToDB(&(*dest)[i].Value) i++ } } type CastableToDB[destType any] interface { ToDB(*destType) bool } func CopySliceToDB[destType any, srcType CastableToDB[destType]](dest *[]destType, src []srcType) bool { if dest == nil { return false } *dest = make([]destType, len(src)) for i := range src { src[i].ToDB(&(*dest)[i]) } return true } func CopySliceToDBParallel[destType any, srcType CastableToDB[destType]](wg *sync.WaitGroup, dest *[]destType, src []srcType) { wg.Add(1) CopySliceToDB(dest, src) wg.Done() }