diff --git a/csharp/Platform.Data/ILinks.cs b/csharp/Platform.Data/ILinks.cs index 7438b68..678abee 100644 --- a/csharp/Platform.Data/ILinks.cs +++ b/csharp/Platform.Data/ILinks.cs @@ -10,11 +10,9 @@ namespace Platform.Data { /// /// Represents an interface for manipulating data in the Links (links storage) format. - /// Представляет интерфейс для манипуляции с данными в формате Links (хранилища связей). /// /// /// This interface is independent of the size of the content of the link, meaning it is suitable for both doublets, triplets, and link sequences of any size. - /// Этот интерфейс не зависит от размера содержимого связи, а значит подходит как для дуплетов, триплетов и последовательностей связей любого размера. /// public interface ILinks where TLinkAddress : IUnsignedNumber @@ -24,11 +22,9 @@ public interface ILinks /// /// Returns the set of constants that is necessary for effective communication with the methods of this interface. - /// Возвращает набор констант, который необходим для эффективной коммуникации с методами этого интерфейса. /// /// /// These constants are not changed since the creation of the links storage access point. - /// Эти константы не меняются с момента создания точки доступа к хранилищу связей. /// TConstants Constants { @@ -42,23 +38,20 @@ TConstants Constants /// /// Counts and returns the total number of links in the storage that meet the specified restriction. - /// Подсчитывает и возвращает общее число связей находящихся в хранилище, соответствующих указанному ограничению. /// - /// Restriction on the contents of links.Ограничение на содержимое связей. - /// The total number of links in the storage that meet the specified restriction.Общее число связей находящихся в хранилище, соответствующих указанному ограничению. + /// Restriction on the contents of links. + /// The total number of links in the storage that meet the specified restriction. [MethodImpl(MethodImplOptions.AggressiveInlining)] TLinkAddress Count(IList? restriction); /// /// Passes through all the links matching the pattern, invoking a handler for each matching link. - /// Выполняет проход по всем связям, соответствующим шаблону, вызывая обработчик (handler) для каждой подходящей связи. /// /// /// Restriction on the contents of links. Each constraint can have values: Constants.Null - the 0th link denoting a reference to the void, Any - the absence of a constraint, 1..∞ a specific link index. - /// Ограничение на содержимое связей. Каждое ограничение может иметь значения: Constants.Null - 0-я связь, обозначающая ссылку на пустоту, Any - отсутствие ограничения, 1..∞ конкретный индекс связи. /// - /// A handler for each matching link.Обработчик для каждой подходящей связи. - /// Constants.Continue, if the pass through the links was not interrupted, and Constants.Break otherwise.Constants.Continue, в случае если проход по связям не был прерван и Constants.Break в обратном случае. + /// A handler for each matching link. + /// Constants.Continue, if the pass through the links was not interrupted, and Constants.Break otherwise. [MethodImpl(MethodImplOptions.AggressiveInlining)] TLinkAddress Each(IList? restriction, ReadHandler? handler); @@ -68,78 +61,57 @@ TConstants Constants /// /// Creates a link. - /// Создаёт связь. + /// /// /// The content of a new link. This argument is optional, if the null passed as value that means no content of a link is set. - /// Содержимое новой связи. Этот аргумент опционален, если null передан в качестве значения это означает, что никакого содержимого для связи не установлено. /// /// /// A function to handle each executed change. This function can use Constants.Continue to continue proccess each change. Constants.Break can be used to stop receiving of executed changes. - /// Функция для обработки каждого выполненного изменения. Эта функция может использовать Constants.Continue чтобы продолжить обрабатывать каждое изменение. Constants.Break может быть использована для остановки получения выполненных изменений. /// - /// /// /// /// Constants.Continue if all executed changes are handled. /// Constants.Break if proccessing of handled changes is stoped. /// - /// - /// Constants.Continue если все выполненные изменения обработаны. - /// Constants.Break если обработака выполненных изменений остановлена. - /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] TLinkAddress Create(IList? substitution, WriteHandler? handler); /// - /// Обновляет связь с указанными restriction[Constants.IndexPart] в адресом связи - /// на связь с указанным новым содержимым. + /// Updates a link with the specified restriction[Constants.IndexPart] as the link address to a link with the specified new content. /// /// - /// Ограничение на содержимое связей. - /// Предполагается, что будет указан индекс связи (в restriction[Constants.IndexPart]) и далее за ним будет следовать содержимое связи. - /// Каждое ограничение может иметь значения: Constants.Null - 0-я связь, обозначающая ссылку на пустоту, - /// Constants.Itself - требование установить ссылку на себя, 1..∞ конкретный индекс другой связи. + /// Restriction on the content of links. + /// It is assumed that a link index will be specified (in restriction[Constants.IndexPart]) followed by the link content. + /// Each restriction can have values: Constants.Null - the 0th link denoting a reference to emptiness, Constants.Itself - requirement to set a reference to itself, 1..∞ specific index of another link. /// - /// + /// The new content of the link. /// /// A function to handle each executed change. This function can use Constants.Continue to continue proccess each change. Constants.Break can be used to stop receiving of executed changes. - /// Функция для обработки каждого выполненного изменения. Эта функция может использовать Constants.Continue чтобы продолжить обрабатывать каждое изменение. Constants.Break может быть использована для остановки получения выполненных изменений. /// /// /// /// Constants.Continue if all executed changes are handled. /// Constants.Break if proccessing of handled changes is stoped. /// - /// - /// Constants.Continue если все выполненные изменения обработаны. - /// Constants.Break если обработака выполненных изменений остановлена. - /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] TLinkAddress Update(IList? restriction, IList? substitution, WriteHandler? handler); /// /// Deletes links that match the specified restriction. - /// Удаляет связи соответствующие указанному ограничению. /// /// /// Restriction on the content of a link. This argument is optional, if the null passed as value that means no restriction on the content of a link are set. - /// Ограничение на содержимое связи. Этот аргумент опционален, если null передан в качестве значения это означает, что никаких ограничений на содержимое связи не установлено. /// /// /// A function to handle each executed change. This function can use Constants.Continue to continue proccess each change. Constants.Break can be used to stop receiving of executed changes. - /// Функция для обработки каждого выполненного изменения. Эта функция может использовать Constants.Continue чтобы продолжить обрабатывать каждое изменение. Constants.Break может быть использована для остановки получения выполненных изменений. /// /// /// /// Constants.Continue if all executed changes are handled. /// Constants.Break if proccessing of handled changes is stoped. /// - /// - /// Constants.Continue если все выполненные изменения обработаны. - /// Constants.Break если обработака выполненных изменений остановлена. - /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] TLinkAddress Delete(IList? restriction, WriteHandler? handler); diff --git a/csharp/Platform.Data/ILinksExtensions.cs b/csharp/Platform.Data/ILinksExtensions.cs index 4fcf77a..744da21 100644 --- a/csharp/Platform.Data/ILinksExtensions.cs +++ b/csharp/Platform.Data/ILinksExtensions.cs @@ -78,11 +78,11 @@ public static TLinkAddress Count(this ILinks links.Count(restrictions); /// - /// Возвращает значение, определяющее существует ли связь с указанным индексом в хранилище связей. + /// Returns a value indicating whether a link with the specified index exists in the links storage. /// - /// Хранилище связей. - /// Индекс проверяемой на существование связи. - /// Значение, определяющее существует ли связь. + /// The links storage. + /// The index of the link being checked for existence. + /// A value indicating whether the link exists. [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool Exists(this ILinks links, TLinkAddress link) where TLinkAddress : IUnsignedNumber where TConstants : LinksConstants @@ -91,8 +91,8 @@ public static bool Exists(this ILinks.Default.Compare(links.Count(new LinkAddress(link)), default) > 0); } - /// Хранилище связей. - /// Индекс проверяемой на существование связи. + /// The links storage. + /// The index of the link being checked for existence. /// /// TODO: May be move to EnsureExtensions or make it both there and here /// @@ -106,9 +106,9 @@ public static void EnsureLinkExists(this ILinksХранилище связей. - /// Индекс проверяемой на существование связи. - /// Имя аргумента, в который передаётся индекс связи. + /// The links storage. + /// The index of the link being checked for existence. + /// The name of the argument to which the link index is passed. [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void EnsureLinkExists(this ILinks links, TLinkAddress link, string argumentName) where TLinkAddress : IUnsignedNumber where TConstants : LinksConstants @@ -120,23 +120,23 @@ public static void EnsureLinkExists(this ILinks - /// Выполняет проход по всем связям, соответствующим шаблону, вызывая обработчик (handler) для каждой подходящей связи. + /// Performs traversal of all links matching the pattern, calling the handler for each suitable link. /// - /// Хранилище связей. - /// Обработчик каждой подходящей связи. - /// Ограничения на содержимое связей. Каждое ограничение может иметь значения: Constants.Null - 0-я связь, обозначающая ссылку на пустоту, Any - отсутствие ограничения, 1..∞ конкретный индекс связи. - /// True, в случае если проход по связям не был прерван и False в обратном случае. + /// The links storage. + /// The handler for each suitable link. + /// Restrictions on the contents of links. Each restriction can have values: Constants.Null - the 0th link, representing a reference to emptiness, Any - no restriction, 1..∞ specific link index. + /// True if the link traversal was not interrupted, and False otherwise. [MethodImpl(MethodImplOptions.AggressiveInlining)] public static TLinkAddress Each(this ILinks links, ReadHandler? handler, params TLinkAddress[] restrictions) where TLinkAddress : IUnsignedNumber where TConstants : LinksConstants => links.Each(restrictions, handler); /// - /// Возвращает части-значения для связи с указанным индексом. + /// Returns the part-values for the link with the specified index. /// - /// Хранилище связей. - /// Индекс связи. - /// Уникальную связь. + /// The links storage. + /// The link index. + /// The unique link. [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IList? GetLink(this ILinks links, TLinkAddress link) where TLinkAddress : IUnsignedNumber where TConstants : LinksConstants @@ -153,10 +153,10 @@ public static TLinkAddress Each(this ILinksВозвращает значение, определяющее является ли связь с указанным индексом точкой полностью (связью замкнутой на себе дважды). - /// Хранилище связей. - /// Индекс проверяемой связи. - /// Значение, определяющее является ли связь точкой полностью. + /// Returns a value indicating whether the link with the specified index is a full point (a link closed on itself twice). + /// The links storage. + /// The index of the link being checked. + /// A value indicating whether the link is a full point. /// /// Связь точка - это связь, у которой начало (Source) и конец (Target) есть сама эта связь. /// Но что, если точка уже есть, а нужно создать пару с таким же значением? Должны ли точка и пара существовать одновременно? @@ -187,10 +187,10 @@ public static bool IsFullPoint(this ILinks.IsFullPoint(links.GetLink(link)); } - /// Возвращает значение, определяющее является ли связь с указанным индексом точкой частично (связью замкнутой на себе как минимум один раз). - /// Хранилище связей. - /// Индекс проверяемой связи. - /// Значение, определяющее является ли связь точкой частично. + /// Returns a value indicating whether the link with the specified index is a partial point (a link closed on itself at least once). + /// The links storage. + /// The index of the link being checked. + /// A value indicating whether the link is a partial point. /// /// Достаточно любой одной ссылки на себя. /// Также в будущем можно будет проверять и всех родителей, чтобы проверить есть ли ссылки на себя (на эту связь). diff --git a/csharp/Platform.Data/LinksConstants.cs b/csharp/Platform.Data/LinksConstants.cs index f2df4f9..9b54171 100644 --- a/csharp/Platform.Data/LinksConstants.cs +++ b/csharp/Platform.Data/LinksConstants.cs @@ -22,21 +22,21 @@ public class LinksConstants : LinksConstantsBase where TLinkAddres #region Link parts - /// Возвращает индекс части, которая отвечает за индекс (адрес, идентификатор) самой связи. + /// Returns the index of the part that is responsible for the index (address, identifier) of the link itself. public int IndexPart { [MethodImpl(MethodImplOptions.AggressiveInlining)] get; } - /// Возвращает индекс части, которая отвечает за ссылку на связь-начало (первая часть-значение). + /// Returns the index of the part that is responsible for the reference to the source link (first part-value). public int SourcePart { [MethodImpl(MethodImplOptions.AggressiveInlining)] get; } - /// Возвращает индекс части, которая отвечает за ссылку на связь-конец (последняя часть-значение). + /// Returns the index of the part that is responsible for the reference to the target link (last part-value). public int TargetPart { [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -47,7 +47,7 @@ public int TargetPart #region Flow control - /// Возвращает значение, обозначающее продолжение прохода по связям. + /// Returns a value that represents the continuation of link traversal. /// Используется в функции обработчике, который передаётся в функцию Each. public TLinkAddress Continue { @@ -55,7 +55,7 @@ public TLinkAddress Continue get; } - /// Возвращает значение, обозначающее остановку прохода по связям. + /// Returns a value that represents the stopping of link traversal. /// Используется в функции обработчике, который передаётся в функцию Each. public TLinkAddress Break { @@ -63,7 +63,7 @@ public TLinkAddress Break get; } - /// Возвращает значение, обозначающее пропуск в проходе по связям. + /// Returns a value that represents the skipping in link traversal. public TLinkAddress Skip { [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -74,14 +74,14 @@ public TLinkAddress Skip #region Special symbols - /// Возвращает значение, обозначающее отсутствие связи. + /// Returns a value that represents the absence of a link. public TLinkAddress Null { [MethodImpl(MethodImplOptions.AggressiveInlining)] get; } - /// Возвращает значение, обозначающее любую связь. + /// Returns a value that represents any link. /// Возможно нужно зарезервировать отдельное значение, тогда можно будет создавать все варианты последовательностей в функции Create. public TLinkAddress Any { @@ -89,7 +89,7 @@ public TLinkAddress Any get; } - /// Возвращает значение, обозначающее связь-ссылку на саму связь. + /// Returns a value that represents a link-reference to the link itself. public TLinkAddress Itself { [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -102,14 +102,14 @@ public TLinkAddress Itself #region References - /// Возвращает диапазон возможных индексов для внутренних связей (внутренних ссылок). + /// Returns the range of possible indexes for internal links (internal references). public Range InternalReferencesRange { [MethodImpl(MethodImplOptions.AggressiveInlining)] get; } - /// Возвращает диапазон возможных индексов для внешних связей (внешних ссылок). + /// Returns the range of possible indexes for external links (external references). public Range? ExternalReferencesRange { [MethodImpl(MethodImplOptions.AggressiveInlining)]