package interactors import ( cst "repodiff/constants" ent "repodiff/entities" ) func ProjectNamesToType(manifests *ent.ManifestFileGroup) TypeMap { commonProjects := extractProjectNames(manifests.Common) distinctProjects := SetSubtract( SetUnion( extractProjectNames(manifests.Downstream), extractProjectNames(manifests.Upstream), ), commonProjects, ) return toMap(commonProjects, distinctProjects) } func extractProjectNames(m ent.ManifestFile) []string { projects := make([]string, len(m.Projects)) for i, p := range m.Projects { projects[i] = p.Name } return projects } func toMap(common, distinct []string) TypeMap { ret := make(map[string]cst.ProjectType, len(common)+len(distinct)) for _, k := range common { ret[k] = cst.Global } for _, k := range distinct { ret[k] = cst.DifferentialSpecific } return ret }