//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// AFXUI auxiliary module for Blazor-application (WASM) | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;

using CommonHelpers.WASM;

namespace AFXUI {

//**************************************************************************************************
partial class UComponentBase {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

public int go( Action body, [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do( 0, body, methodNameOrSignature );

public Task<int> go( Func<Task> bodyA, [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 0, bodyA, methodNameOrSignature );
public Task<int> go( Func<bool>? preliminary, Func<Task> bodyA,
                     [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 0, preliminary, bodyA, methodNameOrSignature );

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

public int go( UCircuitExtraParams extraParams, Action body,
               [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do( 0, extraParams, body, methodNameOrSignature );

public Task<int> go( UCircuitExtraParams extraParams, Func<Task> bodyA,
                     [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 0, extraParams, bodyA, methodNameOrSignature );
public Task<int> go( UCircuitExtraParams extraParams,
                     Func<bool>? preliminary, Func<Task> bodyA,
                     [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 0, extraParams, preliminary, bodyA, methodNameOrSignature );

//==================================================================================================

public int GO( Action body, [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do( 1, body, methodNameOrSignature );

public Task<int> GO( Func<Task> bodyA, [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 1, bodyA, methodNameOrSignature );
public Task<int> GO( Func<bool>? preliminary, Func<Task> bodyA,
                     [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 1, preliminary, bodyA, methodNameOrSignature );

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

public int GO( UCircuitExtraParams extraParams, Action body,
               [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do( 1, extraParams, body, methodNameOrSignature );

public Task<int> GO( UCircuitExtraParams extraParams, Func<Task> bodyA,
                     [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 1, extraParams, bodyA, methodNameOrSignature );
public Task<int> GO( UCircuitExtraParams extraParams,
                     Func<bool>? preliminary, Func<Task> bodyA,
                     [CallerMemberName] string? methodNameOrSignature=null ) =>
   Do_A( 1, extraParams, preliminary, bodyA, methodNameOrSignature );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // UComponentBase
//**************************************************************************************************

} // AFXUI
