clone method

Clones the generator and both generator can resume from the same step.

Implementation

CloneableGenerator clone() {
  var clonedGenerator =
      CloneableGenerator(fn, args: args, namedArgs: namedArgs);
  for (var i = 0; i <= _currentStep; i++) {
    clonedGenerator.moveNext();
    if (_effectResults.containsKey(i)) {
      clonedGenerator.setResult(_effectResults[i]);
    }
  }
  return clonedGenerator;
}