code: func (cache *schedulerCache) Snapshot() *Snapshot {
  	cache.mu.RLock()
  	defer cache.mu.RUnlock()
  
  	nodes := make(map[string]*schedulernodeinfo.NodeInfo, len(cache.nodes))
  	for k, v := range cache.nodes {
  		nodes[k] = v.info.Clone()
  	}
  
  	assumedPods := make(map[string]bool, len(cache.assumedPods))
  	for k, v := range cache.assumedPods {
  		assumedPods[k] = v
  	}
  
  	return &Snapshot{
  		Nodes:       nodes,
  		AssumedPods: assumedPods,
  	}
  }
docs: // Snapshot takes a snapshot of the current scheduler cache. This is used for
  // debugging purposes only and shouldn't be confused with UpdateNodeInfoSnapshot
  // function.
  // This method is expensive, and should be only used in non-critical path.