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)]