blob: 854d6f3e106e553673a2336e6d4f51c6245add3b [file] [log] [blame]
Alice Chingc9602282014-03-05 12:03:26 -08001/* ------------------------------------------------------------
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