J'utilise SWIG pour envelopper une interface C dans Ruby. Compte tenu de deux structUtilisation de blocs Ruby de C avec SWIG
typedef struct Vertex {
int color, discoverd, finished;
struct Vertex *next;
} Vertex;
typedef struct Graph {
struct Vertex *vertex;
} Graph;
comment puis-je créer une méthode #each
qui donne le sommet en cours, afin que je puisse le traiter en Ruby. Actuellement, mon fichier d'interface SWIG contient quelque chose comme
%extend Graph {
void each() {
Vertex *v;
v = self->vertex;
while(v) {
rb_yield(Qnil); // how do I yield a vertex?
v = v->next;
}
}
};
Merci d'avance pour votre aide.
--t6d