private static DistSpan Spread(IList <DistSpan> distBuffer, byte start, byte length) { byte end = (byte)(start + length); for (int i = 0; i < distBuffer.Count; i++) { var dist = distBuffer[i]; if (dist.Start == end) { dist.Start -= length; dist.Length += length; distBuffer[i] = dist; return(dist); } if (dist.Start == end - 1) { dist.Start -= (byte)(length - 1); dist.Length += (byte)(length - 1); distBuffer[i] = dist; return(dist); } if (dist.End == start) { dist.Length += length; distBuffer[i] = dist; return(dist); } if (dist.End == start + 1) { dist.Length += (byte)(length - 1); distBuffer[i] = dist; return(dist); } } var newDist = new DistSpan(start, length, (byte)distBuffer.Count); distBuffer.Add(newDist); return(newDist); }
public bool RangeEqual(DistSpan other) { return(Start == other.Start && Length == other.Length); }
public bool RangeEqual(DistSpan other) { return(start == other.start && length == other.length); }