public static TLink CreateStack <TLink>(this ILinks <TLink> links, TLink stackMarker) { var stackPoint = links.CreatePoint(); var stack = links.Update(stackPoint, stackMarker, stackPoint); return(stack); }
// TODO: Реализовать компактификацию при чтении //public bool EnforceSingleSequenceVersionOnRead; //public bool UseRequestMarker; //public bool StoreRequestResults; public void InitOptions(ILinks<ulong> links) { if (UseSequenceMarker) { if (SequenceMarkerLink == Constants.Null) SequenceMarkerLink = links.CreatePoint(); else { if (!links.Exists(SequenceMarkerLink)) { var link = links.CreatePoint(); if(link != SequenceMarkerLink) throw new Exception("Cannot recreate sequence marker link."); } } } }
private TLinkAddress GetOrCreateMeaningRoot(TLinkAddress meaningRootIndex) => _links.Exists(meaningRootIndex) ? meaningRootIndex : _links.CreatePoint();
private static void SetPoints(ILinks<ulong> links, ulong[] digits) { // Создадим точки в графе для каждой цифры for (int i = 0; i < digits.Length; i++) digits[i] = links.CreatePoint(); }