package models type Module struct { Id string Title string Description string Url string Version string Compatibility Compatibility Languages []DataLanguage Availability int } type Modules []Module func (modules Modules) GetById(id int) *Module { return &modules[id] } func (state *FoundryState) GetModules() Modules { modulesCopy := make([]Module, 0, 8) for i := range state.Modules { module := &(state.Modules[i]) moduleCopy := Module{ Id: module.Id, Title: module.Title, Description: module.Description, Compatibility: Compatibility{ Minimum: module.Compatibility.Minimum, Maximum: module.Compatibility.Maximum, }, Url: module.Url, Version: module.CoreVersion, Availability: module.Availability, } for j := range module.Languages { lang := DataLanguage{ Lang: module.Languages[j].Lang, Name: module.Languages[j].Name, Path: module.Languages[j].Path, Flags: module.Languages[j].Flags, } moduleCopy.Languages = append(moduleCopy.Languages, lang) } modulesCopy = append(modulesCopy, moduleCopy) } return modulesCopy }