在处理外部代码时,我必须指向表单
的C结构typedef struct {
int two;
int nd;
char typekind;
...
} PyArrayInterface;
显然int
的大小未知。如何在生锈中表示此结构?它可能是i32
,但有一天我可能会遇到ILP64数据模型......
此时我唯一的想法是创建一个枚举来包装结构,在运行时检查体系结构,并做正确的事情。每次我需要从C获取结构时,有一个if
语句和一个transmute
是非常愚蠢的,但我现在没有更好的了...
答案 0 :(得分:4)
要处理FFI类型,您应该使用libc
包。你可以找到它的文档here。
您需要的两种类型是libc::c_int
和libc::c_char
。
This chapter给出了一个简洁的介绍,并提到了c_int
。