package backup import ( "os" "sync" ) type IncludedFiles struct { sync.RWMutex files map[string]*os.FileInfo } // Pushes an additional file or folder onto the struct. func (i *IncludedFiles) Push(info *os.FileInfo, p string) { i.Lock() defer i.Unlock() if i.files == nil { i.files = make(map[string]*os.FileInfo) } i.files[p] = info } // Returns all of the files that were marked as being included. func (i *IncludedFiles) All() map[string]*os.FileInfo { i.RLock() defer i.RUnlock() return i.files }