Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commenting Setters #38

Merged
merged 49 commits into from
Oct 19, 2022
Merged
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
d91d1ad
Added comments
qwasd3lol Oct 31, 2021
7305d0e
Update Setter[TResult].cs
qwasd3lol Oct 31, 2021
026d250
Update Setter[TResult, TDecision].cs
qwasd3lol Oct 31, 2021
bf1f3ae
Added comments
qwasd3lol Nov 21, 2021
38212ef
Added comments
qwasd3lol Nov 21, 2021
00e37ea
Added comments
qwasd3lol Nov 21, 2021
41d8ad1
Added comments
qwasd3lol Nov 22, 2021
470cdb8
Update .gitignore
qwasd3lol Nov 22, 2021
e477540
Added comments
qwasd3lol Nov 23, 2021
8387a3e
Update csharp/Platform.Setters/SetterBase.cs
qwasd3lol Nov 23, 2021
a3c6bdc
Comments added
qwasd3lol Nov 23, 2021
863b25a
Merge branch 'qwasd3lol' of https://github.com/linksplatform/Setters …
qwasd3lol Nov 23, 2021
4fa4916
Update Setter[TResult, TDecision].cs
qwasd3lol Nov 23, 2021
0cd5bed
update
qwasd3lol Nov 23, 2021
51e3f90
Update Setter[TResult, TDecision].cs
qwasd3lol Nov 23, 2021
bf9169e
Merge branch 'master' into qwasd3lol
qwasd3lol Nov 23, 2021
d7db23f
Update Setter[TResult, TDecision].cs
qwasd3lol Nov 23, 2021
60b4441
Update SetterBase.cs
qwasd3lol Nov 25, 2021
12faf67
Update csharp/Platform.Setters/Setter[TResult, TDecision].cs
qwasd3lol Nov 27, 2021
a7b8c66
Update csharp/Platform.Setters/Setter[TResult, TDecision].cs
qwasd3lol Nov 27, 2021
cd3a4ce
Update csharp/Platform.Setters/Setter[TResult, TDecision].cs
qwasd3lol Nov 27, 2021
75a00d7
Added comments
qwasd3lol Nov 27, 2021
8d25554
Merge branch 'qwasd3lol' of https://github.com/linksplatform/Setters …
qwasd3lol Nov 27, 2021
95704cb
Update Setter[TResult].cs
qwasd3lol Nov 27, 2021
d246dd9
Update Setter[TResult, TDecision].cs
qwasd3lol Nov 27, 2021
19e1a2e
Update Setter[TResult].cs
qwasd3lol Nov 27, 2021
f5cfb3b
Update .gitignore
qwasd3lol Dec 20, 2021
788318e
Update csharp/Platform.Setters/SetterBase.cs
qwasd3lol Dec 20, 2021
9c01d32
Update csharp/Platform.Setters/Setter[TResult, TDecision].cs
qwasd3lol Dec 20, 2021
b4d0fc4
Removed extra comments
qwasd3lol Dec 20, 2021
02e20b1
Update .gitignore
qwasd3lol Dec 20, 2021
b4e5755
Added comments
qwasd3lol Jan 9, 2022
c100650
Update Setter[TResult, TDecision].cs
qwasd3lol Jan 12, 2022
042b81d
Merge branch 'master' into qwasd3lol
qwasd3lol Jan 12, 2022
4741355
Update Setter[TResult, TDecision].cs
qwasd3lol Jan 12, 2022
5b5cf00
update
qwasd3lol Jan 12, 2022
8658f0f
Update csharp/Platform.Setters/Setter[TResult, TDecision].cs
qwasd3lol Jan 14, 2022
f72a42d
Added comments
qwasd3lol Jan 18, 2022
cbc8708
Merge branch 'qwasd3lol' of https://github.com/linksplatform/Setters …
qwasd3lol Jan 18, 2022
553725e
Update Setter[TResult, TDecision].cs
qwasd3lol Jan 18, 2022
7462dc0
added comments
qwasd3lol Feb 7, 2022
8accc87
Update Setter[TResult, TDecision].cs
qwasd3lol Feb 21, 2022
3afc63b
ds store removed and comments added
qwasd3lol Mar 3, 2022
3ef92d8
update
qwasd3lol Mar 3, 2022
80d961e
Added comments
qwasd3lol Apr 7, 2022
6d5ea66
added comments
qwasd3lol May 3, 2022
8212c44
removed pragmas
qwasd3lol May 3, 2022
6cbe27b
Update Setter[TResult, TDecision].cs
qwasd3lol Jul 28, 2022
635fc9c
Update csharp/Platform.Setters/Setter[TResult, TDecision].cs
Konard Oct 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -338,4 +338,5 @@ ASALocalRun/
*.code-workspace

# Local History for Visual Studio Code
.history/
.history/
.DS_Store
40 changes: 24 additions & 16 deletions csharp/Platform.Setters/SetterBase.cs
Original file line number Diff line number Diff line change
@@ -1,52 +1,60 @@
using System.Runtime.CompilerServices;
using Platform.Interfaces;

#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member

namespace Platform.Setters
{
/// <summary>
/// <para>Represents a base implementation for an setter that allows you to set a passed value as the result value.</para>
/// <para>Представляет базовую реализацию для установщика, который позволяет установить переданное ему значение в качестве результирующего значения.</para>
/// <para>Represents a base implementation for a setter that allows to set a passed value as the result.</para>
/// <para>Представляет базовую реализацию для установщика, который позволяет установить переданное ему значение в качестве результата.</para>
/// </summary>
/// <typeparam name="TResult"><para>The type of result value.</para><para>Тип результирующего значения.</para></typeparam>
/// <typeparam name="TResult">
/// <para>The type of a result value.</para>
/// <para>Тип результирующего значения.</para>
/// </typeparam>
/// <remarks>
/// Must be class, not struct (in order to persist access to Result property value).
/// <para>Must be class, not struct (in order to persist access to Result property value, when method is passed by reference as handler). <see href="https://gist.github.com/Konard/c62453978f5cca1fc48b44f74050fd80">Example</see>.</para>
/// <para>Должен быть классом, а не структурой (чтобы сохранить доступ к значению свойства Result, при передаче ссылки на метод в качестве обработчика). <see href="https://gist.github.com/Konard/c62453978f5cca1fc48b44f74050fd80">Пример</see>.</para>
/// </remarks>
public abstract class SetterBase<TResult> : ISetter<TResult>
{
/// <summary>
/// <para>Represents the result value.</para>
/// <para>Represents a result value.</para>
/// <para>Представляет результирующие значение.</para>
/// </summary>
protected TResult _result;

/// <summary>
/// <para>Gets result value.</para>
/// <para>Gets a result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// </summary>
public TResult Result => _result;

/// <summary>
/// <para>Initializes a new instance of the SetterBase class.</para>
/// <para>Инициализирует новый экземпляр класса SetterBase.</para>
/// <para>Initializes a new instance of the <see cref="SetterBase"/> class.</para>
/// <para>Инициализирует новый экземпляр класса <see cref="SetterBase"/>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
protected SetterBase() { }

/// <summary>
/// <para>Initializes a new instance of the SetterBase class using the passed-in value as the default result value.</para>
/// <para>Инициализирует новый экземпляр класса SetterBase, используя переданное значение в качестве результирующего по умолчанию.</para>
/// <para>Initializes a new instance of the <see cref="SetterBase"/> class using the <paramref name="defaultValue"/> as the default result.</para>
/// <para>Инициализирует новый экземпляр класса <see cref="SetterBase"/>, используя <paramref name="defaultValue"/> в качестве результата по умолчанию.</para>
/// </summary>
/// <param name="defaultValue"><para>The default result value.</para><para>Результирующее значение по умолчанию.</para></param>
/// <param name="defaultValue">
/// <para>A default result value.</para>
/// <para>Результирующее значение по умолчанию.</para>
/// </param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
protected SetterBase(TResult defaultValue) => _result = defaultValue;

/// <summary>
/// <para>Sets the passed value as the result.</para>
/// <para>Устанавливает переданное значение в качестве результирующего.</para>
/// <para>Sets a <paramref name="value"/> as the result.</para>
/// <para>Устанавливает <paramref name="value"/> в качестве результата.</para>
/// </summary>
/// <param name="value"><para>The result value.</para><para>Результирующее значение.</para></param>
/// <param name="value">
/// <para>A result value.</para>
/// <para>Результирующее значение.</para>
/// </param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Set(TResult value) => _result = value;
}
115 changes: 92 additions & 23 deletions csharp/Platform.Setters/Setter[TResult, TDecision].cs
Original file line number Diff line number Diff line change
@@ -1,26 +1,51 @@
using System.Collections.Generic;
using System.Runtime.CompilerServices;

#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member

namespace Platform.Setters
{
/// <summary>
/// <para>Represents implementation for an setter that allows you to set a passed value as the result value. This setter implementation has additional methods that, simultaneously with setting the result value, return <typeparamref name="TDecision"/> values indicating true or false.</para>
/// <para>Представляет реализацию для установщика, который позволяет установить переданное ему значение в качестве результирующего значения. В этой реализации установщика есть дополнительные методы, которые одновременно с установкой результирующего значения возвращают значения типа <typeparamref name="TDecision"/>, обозначающие истину или ложь.</para>
/// <para>Represents a setter that allows to set a passed value as the result. This setter variant has additional methods that, simultaneously with setting the result, return <typeparamref name="TDecision"/> values indicating true or false.</para>
/// <para>Представляет реализацию для установщика, который позволяет установить переданное ему значение в качестве результата. В этой реализации установщика есть дополнительные методы, которые одновременно с установкой результата возвращают значения типа <typeparamref name="TDecision"/>, обозначающие истину или ложь.</para>
/// </summary>
/// <typeparam name="TResult"><para>The type of result value.</para><para>Тип результирующего значения.</para></typeparam>
/// <typeparam name="TDecision"><para>The type of value which will be used to make the decision.</para><para>Тип значения на основе которого будет приниматься решение.</para></typeparam>
/// <typeparam name="TResult">
/// <para>The type of a result value.</para>
/// <para>Тип результирующего значения.</para>
/// </typeparam>
/// <typeparam name="TDecision">
/// <para>The type of values indicating true and false.</para>
/// <para>Тип значений обозначающих истину и ложь.</para>
/// </typeparam>
Konard marked this conversation as resolved.
Show resolved Hide resolved
/// <seealso cref="Setter{TResult, bool}"/>
public class Setter<TResult, TDecision> : SetterBase<TResult>
{
/// <summary>
/// <para>A read-only field that represents a value that indicates true.</para>
/// <para>Поле только для чтения, представляющее значение обозначающее истину.</para>
/// </summary>
public readonly TDecision TrueValue;

/// <summary>
/// <para>A read-only field that represents a value that indicates false.</para>
/// <para>Поле только для чтения, представляющее значение обозначающее ложь.</para>
/// </summary>
public readonly TDecision FalseValue;

/// <summary>
/// <para>Initializes a new instance of the Setter class using the passed-in value as the default result value.</para>
/// <para>Инициализирует новый экземпляр класса Setter, используя переданные значения trueValue, falseValue, defaultValue в качестве результирующего по умолчанию.</para>
/// <para>Initializes a new instance of the <see cref="Setter{TResult, TDecision}"/> class using the passed-in <paramref name="trueValue"/>, <paramref name="falseValue"/> and <paramref name="defaultValue"/>.</para>
/// <para>Инициализирует новый экземпляр класса <see cref="Setter{TResult, TDecision}"/>, используя переданные значения <paramref name="trueValue"/>, <paramref name="falseValue"/> и <paramref name="defaultValue"/>.</para>
/// </summary>
/// <param name="defaultValue"><para>The default result value.</para><para>Результирующее значение по умолчанию.</para></param>
/// <param name="trueValue">
/// <para>A value that indicates true.</para>
/// <para>Значение обозначающее истину.</para>
/// </param>
/// <param name="falseValue">
/// <para>A value that indicates false.</para>
/// <para>Значение обозначающее ложь.</para>
/// </param>
/// <param name="defaultValue">
/// <para>A default result value.</para>
/// <para>Результирующее значение по умолчанию.</para>
/// </param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Setter(TDecision trueValue, TDecision falseValue, TResult defaultValue)
: base(defaultValue)
@@ -30,30 +55,50 @@ public Setter(TDecision trueValue, TDecision falseValue, TResult defaultValue)
}

/// <summary>
/// <para>Gets result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// <para>Initializes a new instance of the <see cref="Setter{TResult, TDecision}"/> class using passed-in <paramref name="trueValue"/> and <paramref name="falseValue"/> as indicating true and false.</para>
/// <para>Инициализирует новый экземпляр класса <see cref="Setter{TResult, TDecision}"/>, используя переданные значения <paramref name="trueValue"/> и <paramref name="falseValue"/> в качестве обозначающих истину и ложь.</para>
/// </summary>
/// <param name="trueValue">
/// <para>A value that indicates true.</para>
/// <para>Значение обозначающее истину.</para>
/// </param>
/// <param name="falseValue">
/// <para>A value that indicates false.</para>
/// <para>Значение обозначающее ложь.</para>
/// </param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Setter(TDecision trueValue, TDecision falseValue) : this(trueValue, falseValue, default) { }

/// <summary>
/// <para>Gets result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// <para>Initializes a new instance of the <see cref="Setter{TResult, TDecision}"/> class with the <see cref="Result"/> initialized to <paramref name="defaultValue"/>.</para>
/// <para>Инициализирует новый экземпляр класса <see cref="Setter{TResult, TDecision}"/>, инициализируя <see cref="Result"/> значением <paramref name="defaultValue"/>.</para>
/// </summary>
/// <param name="defaultValue">
/// <para>A default result value.</para>
/// <para>Результирующее значение по умолчанию.</para>
/// </param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Setter(TResult defaultValue) : base(defaultValue) { }

/// <summary>
/// <para>Gets result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// <para>Initializes a new instance of the <see cref="Setter{TResult, TDecision}"/> class.</para>
/// <para>Инициализирует новый экземпляр класса <see cref="Setter{TResult, TDecision}"/>.</para>
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Setter() { }

/// <summary>
/// <para>Gets result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// <para>Sets the <paramref name="value"/> to the <see cref="Result"/> and returns the value indicating true.</para>
/// <para>Устанавливает <paramref name="value"/> в <see cref="Result"/> и возвращает значение обозначающее истину.</para>
/// </summary>
/// <param name="value">
/// <para>A result value.</para>
/// <para>Результирующее значение.</para>
/// </param>
/// <returns>
/// <para>A value that indicates true.</para>
/// <para>Значение обозначающее истину.</para>
/// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public TDecision SetAndReturnTrue(TResult value)
{
@@ -62,9 +107,17 @@ public TDecision SetAndReturnTrue(TResult value)
}

/// <summary>
/// <para>Gets result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// <para>Sets the <paramref name="value"/> to the <see cref="Result"/> and returns the value indicating false.</para>
/// <para>Устанавливает <paramref name="value"/> в <see cref="Result"/> и возвращает значение обозначающее ложь.</para>
/// </summary>
/// <param name="value">
/// <para>A result value.</para>
/// <para>Результирующее значение.</para>
/// </param>
/// <returns>
/// <para>A value that indicates false.</para>
/// <para>Значение обозначающее ложь.</para>
/// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public TDecision SetAndReturnFalse(TResult value)
{
@@ -73,9 +126,17 @@ public TDecision SetAndReturnFalse(TResult value)
}

/// <summary>
/// <para>Gets result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// <para>Sets the first element from the <paramref name="list"/> to the <see cref="Result"/> and returns the value indicating true.</para>
/// <para>Устанавливает первый элемент из <paramref name="list"/> в <see cref="Result"/> и возвращает значение означающее истину.</para>
/// </summary>
/// <param name="list">
/// <para>A list from which the first item will be set to the <see cref="Result"/>.</para>
/// <para>Список, первый элемент которого будет установлен в <see cref="Result"/>.</para>
/// </param>
/// <returns>
/// <para>A value that indicates true.</para>
/// <para>Значение обозначающее истину.</para>
/// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public TDecision SetFirstAndReturnTrue(IList<TResult> list)
{
@@ -84,9 +145,17 @@ public TDecision SetFirstAndReturnTrue(IList<TResult> list)
}

/// <summary>
/// <para>Gets result value.</para>
/// <para>Возвращает результирующее значение.</para>
/// <para>Sets the first element from the <paramref name="list"/> to the <see cref="Result"/> and returns the value indicating false.</para>
/// <para>Устанавливает первый элемент из <paramref name="list"/> в <see cref="Result"/> и возвращает значение означающее ложь.</para>
/// </summary>
/// <param name="list">
/// <para>A list from which the first item will be set to the <see cref="Result"/>.</para>
/// <para>Список, первый элемент которого будет установлен в <see cref="Result"/>.</para>
/// </param>
/// <returns>
/// <para>A value that indicates false.</para>
/// <para>Значение обозначающее ложь.</para>
/// </returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public TDecision SetFirstAndReturnFalse(IList<TResult> list)
{
Loading