1

Ruby で C インターフェイスをラップするために SWIG を使用しています。与えられた 2 つの構造体

typedef struct Vertex {
  int color, discoverd, finished;
  struct Vertex *next;
} Vertex;

typedef struct Graph {
  struct Vertex *vertex;
} Graph;

#eachRuby で処理できるように、現在の頂点を生成するメソッドを作成するにはどうすればよいですか。現在、私の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

4

1 に答える 1