code: func (s *Store) Move(ctx context.Context, from, to string) error {
  	// recursive move?
  	if s.IsDir(ctx, from) {
  		return errors.Errorf("recursive operations are not supported")
  	}
  
  	content, err := s.Get(ctx, from)
  	if err != nil {
  		return errors.Wrapf(err, "failed to decrypt '%s'", from)
  	}
  	if err := s.Set(WithReason(ctx, fmt.Sprintf("Moved from %s to %s", from, to)), to, content); err != nil {
  		return errors.Wrapf(err, "failed to write '%s'", to)
  	}
  	if err := s.Delete(ctx, from); err != nil {
  		return errors.Wrapf(err, "failed to delete '%s'", from)
  	}
  	return nil
  }
docs: // Move will move one entry from one location to another.
  // Moving an entry will decode it from the old location, encode it
  // for the destination store with the right set of recipients and remove it
  // from the old location afterwards.