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

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

/// <summary>
/// Generic type checking errors (exception creation)
/// </summary>
public static class gtype_check_errors {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

public static EGenericType GENTYPE_IS_NOT( Type comparandType ) =>
   e_generic_type.New(
      "Generic type is not “{0}” type.", comparandType );

public static EGenericType GENTYPE_IS_NOT_REFERENCE_TYPE( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not reference type.", type );

public static EGenericType GENTYPE_IS_NOT_VALUE_TYPE( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not value type.", type );

public static EGenericType GENTYPE_IS_NOT_ENUMERATION( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not enumeration.", type );

public static EGenericType GENTYPE_IS_NOT_FLAGS_ENUMERATION( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not flags enumeration.", type );

public static EGenericType GENTYPE_IS_NOT_NONFLAGS_ENUM( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not nonflags enumeration.", type );

public static EGenericType GENTYPE_IS_NOT_STD_VALUE_TYPE( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not standard value type.", type );

public static EGenericType GENTYPE_IS_NOT_INTEGRAL_TYPE( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not integral number type.", type );

public static EGenericType GENTYPE_IS_NOT_INTEGRAL_SIGNED_NUMBER_TYPE( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not integral signed number type.", type );

public static EGenericType GENTYPE_IS_NOT_INTEGRAL_UNSIGNED_NUMBER_TYPE( Type type ) =>
   e_generic_type.New(
      "“{0}” generic type is not integral unsigned number type.", type );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // gtype_check_errors

} // user_rtx (.wasm)
