code: func GetLayerPath(s Store, layer ChainID) (string, error) {
  	ls, ok := s.(*layerStore)
  	if !ok {
  		return "", errors.New("unsupported layer store")
  	}
  	ls.layerL.Lock()
  	defer ls.layerL.Unlock()
  
  	rl, ok := ls.layerMap[layer]
  	if !ok {
  		return "", ErrLayerDoesNotExist
  	}
  
  	if layerGetter, ok := ls.driver.(Getter); ok {
  		return layerGetter.GetLayerPath(rl.cacheID)
  	}
  	path, err := ls.driver.Get(rl.cacheID, "")
  	if err != nil {
  		return "", err
  	}
  
  	if err := ls.driver.Put(rl.cacheID); err != nil {
  		return "", err
  	}
  
  	return path.Path(), nil
  }
docs: // GetLayerPath returns the path to a layer