// 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; } } public static class ISegmentExtensions { /// /// True, if the segment contains the specified offset, false otherwise. /// /// /// The offset. /// 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. /// /// /// The segment. /// public static bool Contains (this ISegment thisSegment, ISegment segment) { return segment != null && thisSegment.Offset <= segment.Offset && segment.EndOffset <= thisSegment.EndOffset; } } }