//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// UserRTX.NET satellite library | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;

#if !WASM
namespace user_rtx { using u = user_rtx;
#else
namespace user_rtx.wasm { using u = user_rtx.wasm;
#endif
//--------------------------------------------------------------------------------------------------

/// <summary>
/// To-string function (generic delegate)
/// </summary>
public delegate string ToStringFN<in T>( T arg );

/// <summary>
/// Equals-function function (generic delegate)
/// </summary>
public delegate bool EqualsFN<in T>( T arg1, T arg2 );

/// <summary>
/// Condition-with-object function (generic delegate)
/// </summary>
public delegate bool ConditionFN<in T>( T arg );

//--------------------------------------------------------------------------------------------------

/// <summary>
/// Enumeration procedure (generic delegate)
/// </summary>
public delegate void EnumerationProc<in T>( T element );
/// <summary>
/// Enumeration-with-index procedure (generic delegate); index base = 0
/// </summary>
public delegate void EnumerationWithIndexProc<in T>( T element, int idx );
/// <summary>
/// Enumeration-with-number procedure (generic delegate); number base = 1
/// </summary>
public delegate void EnumerationWithNumberProc<in T>( T element, int number );

/// <summary>
/// Continue-enumeration function (generic delegate)
/// </summary>
public delegate bool ContinueEnumerationFN<in T>( T element );
/// <summary>
/// Continue-enumeration-with-index function (generic delegate); index base = 0
/// </summary>
public delegate bool ContinueEnumerationWithIndexFN<in T>( T element, int idx );
/// <summary>
/// Continue-enumeration-with-number function (generic delegate); number base = 1
/// </summary>
public delegate bool ContinueEnumerationWithNumberFN<in T>( T element, int number );

//--------------------------------------------------------------------------------------------------
} // user_rtx (.wasm)
