//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// 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

static partial class array_argcheck {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
const string VN = "value";
//==================================================================================================

/// <summary>
/// Zero-based-array checking for single rank array (for property value)
/// </summary>
/// <exception cref="ArgumentException" />
[u.returns_source]
public static T[] ZeroBased_PV<T>( T[] array ) =>
   ZeroBased<T>( array, VN );

/// <summary>
/// Zero-based-array checking for single rank array (for property value)
/// </summary>
/// <exception cref="ArgumentException" />
[u.returns_source]
public static Array ZeroBased_PV( Array array ) =>
   ZeroBased( array, VN );

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

/// <summary>
/// Single-rank-array checking (for property value)
/// </summary>
/// <exception cref="ArgumentException" />
[u.returns_source]
public static Array Rank1Array_PV( Array array ) =>
   Rank1Array( array, VN );

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

/// <summary>
/// Not-empty-array checking for single rank array (for property value)
/// </summary>
/// <exception cref="ArgumentException" />
[u.returns_source]
public static T[] NotEmpty_PV<T>( T[] array ) =>
   NotEmpty<T>( array, VN );

/// <summary>
/// Not-empty-array checking for single rank array (for property value)
/// </summary>
/// <exception cref="ArgumentException" />
[u.returns_source]
public static Array NotEmpty_PV<T>( Array array ) =>
   NotEmpty<T>( array, VN );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // array_argcheck

} // user_rtx (.wasm)
