%module li_carrays %warnfilter(SWIGWARN_RUBY_WRONG_NAME) doubleArray; /* Ruby, wrong class name */ %include %array_functions(int,intArray); %array_class(double, doubleArray); %array_class(short, shortArray); %inline %{ typedef struct { int x; int y; } XY; XY globalXYArray[3]; typedef struct { int a; int b; } AB; AB globalABArray[3]; %} // Note that struct XY { ... }; gives compiler error for C when using %array_class or %array_functions, but is okay in C++ %array_class(XY, XYArray) %array_functions(AB, ABArray) %inline %{ short sum_array(short x[5]) { short sum = 0; int i; for (i=0; i<5; i++) { sum = sum + x[i]; } return sum; } %}