//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// CommonHelpers satellite library | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;
using System.Runtime.CompilerServices;

namespace CommonHelpers {

//**************************************************************************************************
partial class HResultSetItemBase {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static T? _VAL<T>( [CallerMemberName] string? propertyNameN=null )
where T: struct =>
   HResultSetReader.VAL<T>( PropertyNameN( propertyNameN ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static string? _STR( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.STR( PropertyNameN( propertyNameN ) );
/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static string? _NS( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.NS( PropertyNameN( propertyNameN ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static int? _INT( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.INT( PropertyNameN( propertyNameN ) );
/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static long? _BIGINT( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.BIGINT( PropertyNameN( propertyNameN ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static double? _FP( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.FP( PropertyNameN( propertyNameN ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static decimal? _DEC( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.DEC( PropertyNameN( propertyNameN ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static bool? _BOOL( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.BOOL( PropertyNameN( propertyNameN ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static DateTime? _DT( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.DT( PropertyNameN( propertyNameN ) );
/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static DateTime? _UTC( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.UTC( PropertyNameN( propertyNameN ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static Guid? _GUID( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.GUID( PropertyNameN( propertyNameN ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static byte[]? _BINARY( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader.BINARY( PropertyNameN( propertyNameN ) );

//--------------------------------------------------------------------------------------------------
/*
/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HStrictResult]
protected static ...? _...( [CallerMemberName] string? propertyNameN=null ) =>
   HResultSetReader....( PropertyNameN( propertyNameN ) );
*/
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // HResultSetItemBase
//**************************************************************************************************

} // CommonHelpers
