You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
617 B
19 lines
617 B
using System.Text.RegularExpressions;
|
|
|
|
namespace DiscordChatExporter.Core.Markdown.Parsing;
|
|
|
|
internal readonly record struct StringSegment(string Source, int StartIndex, int Length)
|
|
{
|
|
public int EndIndex => StartIndex + Length;
|
|
|
|
public StringSegment(string target)
|
|
: this(target, 0, target.Length)
|
|
{
|
|
}
|
|
|
|
public StringSegment Relocate(int newStartIndex, int newLength) => new(Source, newStartIndex, newLength);
|
|
|
|
public StringSegment Relocate(Capture capture) => Relocate(capture.Index, capture.Length);
|
|
|
|
public override string ToString() => Source.Substring(StartIndex, Length);
|
|
} |