1/* ------------------------------------------------------------
2 *  Enums mapped as integer values
3 * ------------------------------------------------------------ */
4
5%apply int { enum SWIGTYPE };
6%apply const int& { const enum SWIGTYPE& };
7
8%typemap(in,fragment=SWIG_AsVal_frag(int),noblock=1) const enum SWIGTYPE& (int val, int ecode, $basetype temp) {
9  ecode = SWIG_AsVal(int)($input, &val);
10  if (!SWIG_IsOK(ecode)) {
11    %argument_fail(ecode, "$type", $symname, $argnum);
12  } else {
13    temp = %static_cast(val,$basetype);
14    $1 = &temp;
15  }
16}
17
18%typemap(varin,fragment=SWIG_AsVal_frag(int),noblock=1) enum SWIGTYPE {
19  if (sizeof(int) != sizeof($1)) {
20    %variable_fail(SWIG_AttributeError,"$type", "arch, read-only $name");
21  }  else {
22    int ecode = SWIG_AsVal(int)($input, %reinterpret_cast(&$1,int*));
23    if (!SWIG_IsOK(ecode)) {
24      %variable_fail(ecode, "$type", "$name");
25    }
26  }
27}
28
29