public static string FromSequenceLinkToString(ulong link, ILinks<ulong> links) { var sb = new StringBuilder(); if (links.Exists(link)) { StopableSequenceWalker.WalkRight(link, links.GetSource, links.GetTarget, x => x <= MapSize || links.GetSource(x) == x || links.GetTarget(x) == x, element => { sb.Append(FromLinkToChar(element)); return true; }); } return sb.ToString(); }
public bool IsMatched(TLink sequenceCandidate) => _equalityComparer.Equals(_links.GetSource(sequenceCandidate), _sequenceMarkerLink) || !_equalityComparer.Equals(_links.SearchOrDefault(_sequenceMarkerLink, sequenceCandidate), _links.Constants.Null);
public static string Format <TLink>(this ILinks <TLink> links, TLink link) => $"({link}: {links.GetSource(link)}->{links.GetTarget(link)})";