public ILazyStatus Next(ILazyStatus status) { try { return(status.IsAccepted ? Accepted.New(predicate.Invoke(status.Object).IsTrue ? lambda.Invoke(status.Object) : status.Object) : status); } catch (Exception exception) { return(new Failed(exception)); } }
public ILazyStatus Next(ILazyStatus status) { if (status.IsAccepted) { return(++index < count ? status : new Ended()); } else { return(status); } }
public ILazyStatus Next(ILazyStatus status) { if (status.IsAccepted && skipping) { if (predicate.Invoke(status.Object).IsTrue) { return(new Skipped()); } skipping = false; } return(status); }
public ILazyStatus Next(ILazyStatus status) { if (status.IsAccepted && taking) { if (!predicate.Invoke(status.Object).IsTrue) { return(status); } taking = false; } return(new Ended()); }
public ILazyStatus Next(ILazyStatus status) => ++ index < count ? new Skipped() : status;