|
322 | 322 | tp_versions_used::Cushort = 0 |
323 | 323 | end |
324 | 324 |
|
| 325 | +# shortened struct for dereferencing purposes, only includes fields common to all |
| 326 | +# supported python versions |
| 327 | +@kwdef struct PyTypeObject_DEREF |
| 328 | + ob_base::PyVarObject = PyVarObject() |
| 329 | + name::Cstring = C_NULL # USED |
| 330 | + |
| 331 | + basicsize::Py_ssize_t = 0 |
| 332 | + itemsize::Py_ssize_t = 0 |
| 333 | + |
| 334 | + dealloc::Ptr{Cvoid} = C_NULL |
| 335 | + vectorcall_offset::Py_ssize_t = 0 |
| 336 | + getattr::Ptr{Cvoid} = C_NULL |
| 337 | + setattr::Ptr{Cvoid} = C_NULL |
| 338 | + as_async::Ptr{Cvoid} = C_NULL |
| 339 | + repr::Ptr{Cvoid} = C_NULL |
| 340 | + |
| 341 | + as_number::Ptr{PyNumberMethods} = C_NULL |
| 342 | + as_sequence::Ptr{PySequenceMethods} = C_NULL |
| 343 | + as_mapping::Ptr{PyMappingMethods} = C_NULL |
| 344 | + |
| 345 | + hash::Ptr{Cvoid} = C_NULL |
| 346 | + call::Ptr{Cvoid} = C_NULL |
| 347 | + str::Ptr{Cvoid} = C_NULL |
| 348 | + getattro::Ptr{Cvoid} = C_NULL |
| 349 | + setattro::Ptr{Cvoid} = C_NULL |
| 350 | + |
| 351 | + as_buffer::Ptr{PyBufferProcs} = C_NULL # KEEP |
| 352 | + |
| 353 | + flags::Culong = 0 # USED |
| 354 | + |
| 355 | + doc::Cstring = C_NULL |
| 356 | + |
| 357 | + traverse::Ptr{Cvoid} = C_NULL |
| 358 | + |
| 359 | + clear::Ptr{Cvoid} = C_NULL |
| 360 | + |
| 361 | + richcompare::Ptr{Cvoid} = C_NULL |
| 362 | + |
| 363 | + weaklistoffset::Py_ssize_t = 0 |
| 364 | + |
| 365 | + iter::Ptr{Cvoid} = C_NULL |
| 366 | + iternext::Ptr{Cvoid} = C_NULL |
| 367 | + |
| 368 | + methods::Ptr{PyMethodDef} = C_NULL |
| 369 | + members::Ptr{PyMemberDef} = C_NULL |
| 370 | + getset::Ptr{PyGetSetDef} = C_NULL |
| 371 | + base::PyPtr = C_NULL |
| 372 | + dict::PyPtr = C_NULL |
| 373 | + descr_get::Ptr{Cvoid} = C_NULL |
| 374 | + descr_set::Ptr{Cvoid} = C_NULL |
| 375 | + dictoffset::Py_ssize_t = 0 |
| 376 | + init::Ptr{Cvoid} = C_NULL |
| 377 | + alloc::Ptr{Cvoid} = C_NULL # USED |
| 378 | + new::Ptr{Cvoid} = C_NULL |
| 379 | + free::Ptr{Cvoid} = C_NULL # USED |
| 380 | + is_gc::Ptr{Cvoid} = C_NULL |
| 381 | + bases::PyPtr = C_NULL |
| 382 | + mro::PyPtr = C_NULL |
| 383 | + cache::PyPtr = C_NULL |
| 384 | + subclasses::PyPtr = C_NULL |
| 385 | + weaklist::PyPtr = C_NULL |
| 386 | + del::Ptr{Cvoid} = C_NULL |
| 387 | +end |
| 388 | + |
325 | 389 | @kwdef struct PySimpleObject{T} |
326 | 390 | ob_base::PyObject = PyObject() |
327 | 391 | value::T |
|
0 commit comments