/// <summary>Traverses values and invokes a function on every <typeparamref name="T"/> value.</summary> /// <typeparam name="T">The type of value to traverse.</typeparam> /// <param name="steppable">The values to step though.</param> /// <param name="step">>The function to invoke on every <typeparamref name="T"/> value.</param> /// <returns>The status of the traversal.</returns> public static StepStatus StepperBreak <T>(this ISteppable <T> steppable, Func <T, StepStatus> step) { if (step is null) { throw new ArgumentNullException(nameof(step)); } return(steppable.StepperBreak <SFunc <T, StepStatus> >(step)); }
/// <summary>Traverses values and invokes a function on every <typeparamref name="T"/> value.</summary> /// <typeparam name="T">The type of value to traverse.</typeparam> /// <typeparam name="TStep">The type of function to invoke on every <typeparamref name="T"/> value.</typeparam> /// <param name="steppable">The values to step though.</param> /// <param name="step">The function to invoke on every <typeparamref name="T"/> value.</param> public static void Stepper <T, TStep>(this ISteppable <T> steppable, TStep step = default) where TStep : struct, IAction <T> => steppable.StepperBreak <StepBreakFromAction <T, TStep> >(step);