Skip to content

Commit

Permalink
Make space for a new operator tp_iterkeys
Browse files Browse the repository at this point in the history
This one's going to solve the problem when it comes to figuring out how to enumerate the keys of a mapping, without having to pre-cache `tp_enumerate`, or having to switch stacks in order to list `tp_enumerate` one-at-a-time.
  • Loading branch information
GrieferAtWork committed May 19, 2024
1 parent 37bced4 commit 1ab64c4
Show file tree
Hide file tree
Showing 46 changed files with 107 additions and 0 deletions.
16 changes: 16 additions & 0 deletions include/deemon/object.h
Original file line number Diff line number Diff line change
Expand Up @@ -2035,6 +2035,14 @@ struct Dee_type_seq {
WUNUSED_T NONNULL_T((1, 2)) Dee_ssize_t (DCALL *tp_enumerate)(DeeObject *__restrict self, Dee_enumerate_t proc, void *arg);
WUNUSED_T NONNULL_T((1, 2)) Dee_ssize_t (DCALL *tp_enumerate_index)(DeeObject *__restrict self, Dee_enumerate_index_t proc, void *arg, size_t start, size_t end);

/* Similar to "tp_iter", but create an iterator for enumerating the "keys" of this object.
* The keys of an object are all of the values that exist as items (as per "tp_hasitem"),
* meaning that "tp_getitem" will return something other than "IndexError" / "KeyError"
* for them (though it may still return "UnboundItem" if a key exists but doesn't have
* any value assigned to it).
* The keys enumerated by the returned iterator as the same as also yielded by `tp_enumerate' */
WUNUSED_T NONNULL_T((1)) DREF DeeObject *(DCALL *tp_iterkeys)(DeeObject *__restrict self); /* TODO */

/* Optional function to check if a specific item index/key is bound. (inherited alongside `tp_getitem')
* Check if a given item is bound (`self[index] is bound' / `deemon.bounditem(self, index)')
* @return: 1 : Item is bound.
Expand Down Expand Up @@ -2225,6 +2233,13 @@ myob_enumerate_index(MyObject *__restrict self, Dee_enumerate_index_t proc, void
return DeeError_NOTIMPLEMENTED();
}

PRIVATE WUNUSED NONNULL((1)) DREF DeeObject *DCALL
myob_iterkeys(MyObject *__restrict self) {
(void)self;
DeeError_NOTIMPLEMENTED();
return NULL;
}

PRIVATE WUNUSED NONNULL((1, 2)) int DCALL
myob_bounditem(MyObject *self, DeeObject *index) {
(void)self;
Expand Down Expand Up @@ -2480,6 +2495,7 @@ PRIVATE struct type_seq myob_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&myob_foreach_pair,
/* .tp_enumerate = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_t, void *))&myob_enumerate,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&myob_enumerate_index,
/* .tp_iterkeys = */ (DREF DeeObject *(DCALL *)(DeeObject *__restrict))&myob_iterkeys,
/* .tp_bounditem = */ (int (DCALL *)(DeeObject *, DeeObject *))&myob_bounditem,
/* .tp_hasitem = */ (int (DCALL *)(DeeObject *, DeeObject *))&myob_hasitem,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&myob_size,
Expand Down
7 changes: 7 additions & 0 deletions src/deemon/execute/function-wrappers.c
Original file line number Diff line number Diff line change
Expand Up @@ -546,6 +546,7 @@ PRIVATE struct type_seq funcstatics_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&funcstatics_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&funcstatics_size,
Expand Down Expand Up @@ -1421,6 +1422,7 @@ PRIVATE struct type_seq funcsymbolsbyname_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL, /* TODO */
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&funcsymbolsbyname_nsi_getsize,
Expand Down Expand Up @@ -2407,6 +2409,7 @@ PRIVATE struct type_seq yfuncsymbolsbyname_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL, /* TODO */
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&yfuncsymbolsbyname_nsi_getsize,
Expand Down Expand Up @@ -2669,6 +2672,7 @@ PRIVATE struct type_seq frameargs_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL, /* TODO */
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&frameargs_size,
Expand Down Expand Up @@ -3005,6 +3009,7 @@ PRIVATE struct type_seq framelocals_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&framelocals_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&framelocals_size,
Expand Down Expand Up @@ -3456,6 +3461,7 @@ PRIVATE struct type_seq framestack_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&framestack_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&framestack_size,
Expand Down Expand Up @@ -4796,6 +4802,7 @@ PRIVATE struct type_seq framesymbolsbyname_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL, /* TODO */
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&framesymbolsbyname_size,
Expand Down
2 changes: 2 additions & 0 deletions src/deemon/execute/module_globals.c
Original file line number Diff line number Diff line change
Expand Up @@ -1070,6 +1070,7 @@ PRIVATE struct type_seq modexports_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_t, void *))&modexports_enumerate,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ (int (DCALL *)(DeeObject *, DeeObject *))&modexports_bounditem,
/* .tp_hasitem = */ (int (DCALL *)(DeeObject *, DeeObject *))&modexports_hasitem,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&modexports_size,
Expand Down Expand Up @@ -1398,6 +1399,7 @@ PRIVATE struct type_seq modglobals_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&modglobals_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&modglobals_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/bytes.c
Original file line number Diff line number Diff line change
Expand Up @@ -1447,6 +1447,7 @@ PRIVATE struct type_seq bytes_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&bytes_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/cached-dict.c
Original file line number Diff line number Diff line change
Expand Up @@ -1270,6 +1270,7 @@ PRIVATE struct type_seq cdict_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&cdict_foreach_pair,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ (int (DCALL *)(DeeObject *, DeeObject *))&cdict_bounditem,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&cdict_size,
Expand Down
3 changes: 3 additions & 0 deletions src/deemon/objects/class_desc.c
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,7 @@ PRIVATE struct type_seq cot_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&cot_foreach_pair,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&cot_size,
Expand Down Expand Up @@ -1083,6 +1084,7 @@ PRIVATE struct type_seq cat_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&cat_foreach_pair,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&cat_size,
Expand Down Expand Up @@ -2622,6 +2624,7 @@ PRIVATE struct type_seq ot_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&ot_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/dict.c
Original file line number Diff line number Diff line change
Expand Up @@ -2525,6 +2525,7 @@ PRIVATE struct type_seq dict_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&dict_foreach,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ (int (DCALL *)(DeeObject *, DeeObject *))&dict_bounditem,
/* .tp_hasitem = */ (int (DCALL *)(DeeObject *, DeeObject *))&dict_hasitem,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&dict_size,
Expand Down
4 changes: 4 additions & 0 deletions src/deemon/objects/dictproxy.c
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,7 @@ PRIVATE struct type_seq proxy_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&proxy_size,
Expand Down Expand Up @@ -810,6 +811,7 @@ PRIVATE struct type_seq dict_keys_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&proxy_size,
Expand Down Expand Up @@ -857,6 +859,7 @@ PRIVATE struct type_seq dict_items_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&dict_items_foreach,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&proxy_size,
Expand Down Expand Up @@ -904,6 +907,7 @@ PRIVATE struct type_seq dict_values_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&proxy_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/gc_inspect.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,7 @@ PRIVATE struct type_seq gcset_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&gcset_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/hashset.c
Original file line number Diff line number Diff line change
Expand Up @@ -1872,6 +1872,7 @@ PRIVATE struct type_seq hashset_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&hashset_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/list.c
Original file line number Diff line number Diff line change
Expand Up @@ -2142,6 +2142,7 @@ PRIVATE struct type_seq list_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&list_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL, /* default */
/* .tp_hasitem = */ NULL, /* default */
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&list_size,
Expand Down
4 changes: 4 additions & 0 deletions src/deemon/objects/map.c
Original file line number Diff line number Diff line change
Expand Up @@ -894,6 +894,7 @@ PRIVATE struct type_seq proxykeys_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&proxy_size,
Expand Down Expand Up @@ -941,6 +942,7 @@ PRIVATE struct type_seq proxyvalues_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&proxy_size,
Expand Down Expand Up @@ -988,6 +990,7 @@ PRIVATE struct type_seq proxyitems_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&proxy_size,
Expand Down Expand Up @@ -2019,6 +2022,7 @@ PRIVATE struct type_seq generic_map_seq = {
/* .tp_foreach_pair = */ &generic_map_foreach_pair,
/* .tp_enumerate = */ &generic_map_enumerate,
/* .tp_enumerate_index = */ &generic_map_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ &generic_map_bounditem,
/* .tp_hasitem = */ &generic_map_hasitem,
/* .tp_size = */ &generic_map_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/none.c
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,7 @@ PRIVATE struct type_seq none_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&none_s3,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ (int (DCALL *)(DeeObject *, DeeObject *))&none_i2_1,
/* .tp_hasitem = */ (int (DCALL *)(DeeObject *, DeeObject *))&none_i2_1,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&none_s1,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/rodict.c
Original file line number Diff line number Diff line change
Expand Up @@ -1010,6 +1010,7 @@ PRIVATE struct type_seq rodict_seq = {
/* .tp_foreach_pair = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_foreach_pair_t, void *))&rodict_foreach_pair,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ (int (DCALL *)(DeeObject *, DeeObject *))&rodict_hasitem,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&rodict_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/roset.c
Original file line number Diff line number Diff line change
Expand Up @@ -516,6 +516,7 @@ PRIVATE struct type_seq roset_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&roset_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/seq.c
Original file line number Diff line number Diff line change
Expand Up @@ -2948,6 +2948,7 @@ PRIVATE struct type_seq generic_seq_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ &generic_seq_enumerate,
/* .tp_enumerate_index = */ &generic_seq_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ &generic_seq_bounditem,
/* .tp_hasitem = */ &generic_seq_hasitem,
/* .tp_size = */ &generic_seq_size,
Expand Down
1 change: 1 addition & 0 deletions src/deemon/objects/seq/concat.c
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,7 @@ PRIVATE struct type_seq cat_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ NULL,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&cat_size,
Expand Down
3 changes: 3 additions & 0 deletions src/deemon/objects/seq/default-reversed.c
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ PRIVATE struct type_seq rs_gii_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&rs_gii_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&rs_gii_size,
Expand Down Expand Up @@ -331,6 +332,7 @@ PRIVATE struct type_seq rs_giif_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&rs_giif_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&rs_giif_size,
Expand Down Expand Up @@ -378,6 +380,7 @@ PRIVATE struct type_seq rs_tgii_seq = {
/* .tp_foreach_pair = */ NULL,
/* .tp_enumerate = */ NULL,
/* .tp_enumerate_index = */ (Dee_ssize_t (DCALL *)(DeeObject *__restrict, Dee_enumerate_index_t, void *, size_t, size_t))&rs_tgii_enumerate_index,
/* .tp_iterkeys = */ NULL,
/* .tp_bounditem = */ NULL,
/* .tp_hasitem = */ NULL,
/* .tp_size = */ (size_t (DCALL *)(DeeObject *__restrict))&rs_tgii_size,
Expand Down
Loading

0 comments on commit 1ab64c4

Please sign in to comment.