// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under MIT license (for details please see \doc\license.txt) using System; namespace ICSharpCode.Editor { /// /// An (Offset,Length)-pair. /// public interface ISegment { /// /// Gets the start offset of the segment. /// int Offset { get; } /// /// Gets the length of the segment. /// /// Must not be negative. int Length { get; } /// /// Gets the end offset of the segment. /// /// EndOffset = Offset + Length; int EndOffset { get; } } /// /// Extension methods for . /// public static class ISegmentExtensions { /// /// Gets whether the segment contains the offset. /// /// /// True, if offset is between segment.Start and segment.End (inclusive); otherwise, false. /// public static bool Contains (this ISegment segment, int offset) { return segment.Offset <= offset && offset <= segment.EndOffset; } /// /// True, if the segment contains the specified segment, false otherwise. /// public static bool Contains (this ISegment thisSegment, ISegment segment) { return segment != null && thisSegment.Offset <= segment.Offset && segment.EndOffset <= thisSegment.EndOffset; } } }