package main import "sync" type MemoryPages struct { m sync.RWMutex pages map[string]string } // // func NewMemoryPages() PagesRepository { // return &MemoryPages{ // pages: make(map[string]string), // } // } func (mp *MemoryPages) Get(p string) Page { mp.m.RLock() defer mp.m.RUnlock() if pt, e := mp.pages[p]; e { return Page{Content: pt} } return Page{} } func (mp *MemoryPages) Save(p string, page Page, summary, author string) { mp.m.Lock() defer mp.m.Unlock() mp.pages[p] = page.Content } func (mp *MemoryPages) Exist(p string) bool { mp.m.RLock() defer mp.m.RUnlock() _, e := mp.pages[p] return e }