#include "elegant.h" /* let's assume we have our int readFromBase(int base,char** string, int stringLength) elegant method defined in there*/
typedef int (*readFrombaseFunc)(int, char**, int);
typedef struct (readFromBaseFunc func,int base} converter;
converter[17] converters={
{null,null},
{null,null},
{&readFromBase,2},
{&readFromBase,3},
{&readFromBase,4},
{&readFromBase,5},
{&readFromBase,6},
{&readFromBase,7},
{&readFromBase,8},
{&readFromBase,9},
{&readFromBase,10},
{&readFromBase,11},
{&readFromBase,12},
{&readFromBase,14},
{&readFromBase,15},
{&readFromBase,16}
};
int convertWithArrays(int fromBase,char**string, int stringLength)
{
converter conv=converters[fromBase];
if(conv.func){
return (*conv.func)(conv.base,string,stringlength);
}else{
errno=1004577;
return -1;
}
}