Skip to content

Instantly share code, notes, and snippets.

@Nucs
Created July 24, 2019 23:04
Show Gist options
  • Select an option

  • Save Nucs/8d905806937e99bb33dddeca8fae8162 to your computer and use it in GitHub Desktop.

Select an option

Save Nucs/8d905806937e99bb33dddeca8fae8162 to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RegenTesting
{
class Shape
{
public Shape(params int[] p) { }
#if _REGEN
%pre = "dims.Item"
%foreach range(2,14)%
public static implicit operator Shape(#(repeat("int", #1 , ", " , "(" , "" , "" , ")" )) dims) => new Shape(#(repeat("^pre+(n+1)", i , ", " )));
%
#else
public static implicit operator Shape((int, int) dims) => new Shape();
public static implicit operator Shape((int, int, int) dims) => new Shape(dims.Item1);
public static implicit operator Shape((int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2);
public static implicit operator Shape((int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3);
public static implicit operator Shape((int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4);
public static implicit operator Shape((int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5);
public static implicit operator Shape((int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6);
public static implicit operator Shape((int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7);
public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8);
public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9);
public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10);
public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10, dims.Item11);
public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10, dims.Item11, dims.Item12);
public static implicit operator Shape((int, int, int, int, int, int, int, int, int, int, int, int, int, int, int) dims) => new Shape(dims.Item1, dims.Item2, dims.Item3, dims.Item4, dims.Item5, dims.Item6, dims.Item7, dims.Item8, dims.Item9, dims.Item10, dims.Item11, dims.Item12, dims.Item13);
#endif
public void __k()
{
#if _REGEN
object o = null;
%foreach ["int", "float"]%
switch(o) {
%foreach ["int", "float"]%
case #101 _#101:
switch(_#101) {
%foreach ["int", "float"]%
case #201 __#201:
switch(__#201) {
%foreach ["int", "float"]%
case #301 ___#301:
break;
%
}
break;
%
}
break;
%
}
%
#else
object o = null;
switch(o) {
case int _int:
switch(_int) {
case int __int:
switch(__int) {
case int ___int:
break;
case float ___float:
break;
}
break;
case float __float:
switch(__float) {
case int ___int:
break;
case float ___float:
break;
}
break;
}
break;
case float _float:
switch(_float) {
case int __int:
switch(__int) {
case int ___int:
break;
case float ___float:
break;
}
break;
case float __float:
switch(__float) {
case int ___int:
break;
case float ___float:
break;
}
break;
}
break;
}
switch(o) {
case int _int:
switch(_int) {
case int __int:
switch(__int) {
case int ___int:
break;
case float ___float:
break;
}
break;
case float __float:
switch(__float) {
case int ___int:
break;
case float ___float:
break;
}
break;
}
break;
case float _float:
switch(_float) {
case int __int:
switch(__int) {
case int ___int:
break;
case float ___float:
break;
}
break;
case float __float:
switch(__float) {
case int ___int:
break;
case float ___float:
break;
}
break;
}
break;
}
#endif
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment