@@ -12,6 +12,7 @@ extern PyTypeObject AdjacencyListGraphNodeType;
1212
1313typedef struct {
1414 PyObject_HEAD
15+ NodeType_ type_tag;
1516 std::string name;
1617 int internal_id;
1718 std::variant<std::monostate, int64_t , double , std::string, PyObject *> data;
@@ -34,6 +35,7 @@ static void AdjacencyListGraphNode_dealloc(AdjacencyListGraphNode* self) {
3435static PyObject* AdjacencyListGraphNode_new (PyTypeObject* type, PyObject* args, PyObject* kwds) {
3536 AdjacencyListGraphNode* self = PyObject_New (AdjacencyListGraphNode, &AdjacencyListGraphNodeType);
3637 if (!self) return NULL ;
38+ self->type_tag = NodeType_::AdjacencyListGraphNode;
3739 new (&self->adjacent ) std::unordered_map<std::string, PyObject*>();
3840 new (&self->name ) std::string ();
3941 new (&self->data ) std::variant<std::monostate, int64_t , double , std::string, PyObject*>();
@@ -234,6 +236,11 @@ static int AdjacencyListGraphNode_set_adjacent(AdjacencyListGraphNode* self, PyO
234236 return 0 ;
235237}
236238
239+ static struct PyMemberDef AdjacencyListGraphNode_PyMemberDef[] = {
240+ {" type_tag" , T_INT, offsetof (AdjacencyListGraphNode, type_tag), 0 , " AdjacencyListGraphNode type_tag" },
241+ {NULL },
242+ };
243+
237244static PyGetSetDef AdjacencyListGraphNode_getsetters[] = {
238245 {" name" , (getter)AdjacencyListGraphNode_get_name, (setter)AdjacencyListGraphNode_set_name, " Get or set node name" , NULL },
239246 {" data" , (getter)AdjacencyListGraphNode_get_data, (setter)AdjacencyListGraphNode_set_data, " Get or set node data" , NULL },
@@ -275,7 +282,7 @@ inline PyTypeObject AdjacencyListGraphNodeType = {
275282 /* tp_iter */ 0 ,
276283 /* tp_iternext */ 0 ,
277284 /* tp_methods */ AdjacencyListGraphNode_methods,
278- /* tp_members */ 0 ,
285+ /* tp_members */ AdjacencyListGraphNode_PyMemberDef ,
279286 /* tp_getset */ AdjacencyListGraphNode_getsetters,
280287 /* tp_base */ &GraphNodeType,
281288 /* tp_dict */ 0 ,
0 commit comments