package mem import ( "finally-a-monolithic-linux-hw-monitor/app/common" "finally-a-monolithic-linux-hw-monitor/app/mem/drivers" ) type Mem struct { drivers []common.Driver } func GetMem() (Mem, error) { mem := Mem{} mem.drivers = []common.Driver{} meminfo, err := drivers.NewMemInfoDriver() if err == nil { mem.drivers = append(mem.drivers, meminfo) } dmidecode, err := drivers.NewDmiDecodeDriver() if err == nil { mem.drivers = append(mem.drivers, dmidecode) } return mem, nil } func (mem *Mem) Render(term common.Terminal) { term.Header("Memory") for _, driver := range mem.drivers { driver.Render(term) } }