Я хотел бы обернуть следующий код в Cython:
enum Status {GOOD, BAD};
typedef enum Status STATUS;
// note that the typedef means people dont
// have to write `enum Status` everywhere
// just returns `GOOD`
STATUS hello();
Я написал следующий код Cython в c_library.pxd
:
cdef extern from "library.h":
cpdef enum Status:
GOOD,
BAD
ctypedef Status STATUS
cpdef STATUS hello()
Модуль c_library
теперь содержит c_library.GOOD
, c_library.BAD
,
и c_library.Status
, который ведет себя как enum . Тем не менее
возвращаемое значение вызова функции hello
возвращает обычное значение int:
>>> c_library.hello()
0
>>> type(c_library.hello())
<class 'int'>
Я бы хотел, чтобы результат был также помещен в перечисление того же типа.
Я могу изменить файл Cython, но не базовый C-код. Это возможно?