我正在使用 SWIG 在 Ruby 中包装 C 接口。给定两个结构
typedef struct Vertex {
int color, discoverd, finished;
struct Vertex *next;
} Vertex;
typedef struct Graph {
struct Vertex *vertex;
} Graph;
如何创建一个#each
产生当前顶点的方法,以便我可以在 Ruby 中处理它。目前我的 SWIG 接口文件包含类似
%extend Graph {
void each() {
Vertex *v;
v = self->vertex;
while(v) {
rb_yield(Qnil); // how do I yield a vertex?
v = v->next;
}
}
};
在此先感谢您的帮助。
--t6d