code: func (m *memory) Snapshot() (*loader.Snapshot, error) {
  	if m.loaded() {
  		m.RLock()
  		snap := loader.Copy(m.snap)
  		m.RUnlock()
  		return snap, nil
  	}
  
  	// not loaded, sync
  	if err := m.Sync(); err != nil {
  		return nil, err
  	}
  
  	// make copy
  	m.RLock()
  	snap := loader.Copy(m.snap)
  	m.RUnlock()
  
  	return snap, nil
  }
docs: // Snapshot returns a snapshot of the current loaded config