//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// 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]
protected static T? VAL_N<T>( [CallerMemberName] string? propertyName=null )
where T: struct =>
   HResultSetReader.VAL_N<T>( PropertyName( propertyName ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HOptionalResult]
protected static string? STR_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.STR_N( PropertyName( propertyName ) );
/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HOptionalResult]
protected static string? NS_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.NS_N( PropertyName( propertyName ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static int? INT_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.INT_N( PropertyName( propertyName ) );
/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static long? BIGINT_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.BIGINT_N( PropertyName( propertyName ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static double? FP_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.FP_N( PropertyName( propertyName ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static decimal? DEC_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.DEC_N( PropertyName( propertyName ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static bool? BOOL_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.BOOL_N( PropertyName( propertyName ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static DateTime? DT_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.DT_N( PropertyName( propertyName ) );
/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static DateTime? UTC_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.UTC_N( PropertyName( propertyName ) );

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic]
protected static Guid? GUID_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.GUID_N( PropertyName( propertyName ) );

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

/// <exception cref="ArgumentNullException" />
/// <exception cref="InvalidOperationException" />
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[HAsyncStatic][HOptionalResult]
protected static byte[]? BINARY_N( [CallerMemberName] string? propertyName=null ) =>
   HResultSetReader.BINARY_N( PropertyName( propertyName ) );

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

} // CommonHelpers
