/// <summary> /// Update Deltas window and Recents for value of current byte. /// </summary> /// <param name="src">Source buffer.</param> /// <param name="position">Position in source buffer.</param> /// <param name="window">Deltas window.</param> /// <param name="recents">Recents buffer.</param> static void Remember( ReadOnlySpan <byte> src, int position, ref RevolvingBufferTracker <int> window, Span <int> recents) { // Updates both Recents and Window. var value = src[position]; var recent = recents[value] - 1; recents[value] = position + 1; window.Push(recent); }