| #define NOINLINE __attribute__((noinline)) |
| #define NODISCARD [[nodiscard]] |
| |
| |
| from libc.stdint cimport int8_t, int16_t, int32_t, int64_t, intptr_t |
| from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t |
| cdef extern from *: |
| ctypedef bint bool |
| ctypedef struct va_list |
| |
| cdef extern from *: |
| |
| cdef enum: |
| A, |
| B, |
| ctypedef uint8_t FillRule; |
| |
| # This will have a destructor manually implemented via variant_body, and |
| # similarly a Drop impl in Rust. |
| ctypedef struct OwnedSlice_u32: |
| uintptr_t len; |
| uint32_t *ptr; |
| |
| ctypedef struct Polygon_u32: |
| FillRule fill; |
| OwnedSlice_u32 coordinates; |
| |
| # This will have a destructor manually implemented via variant_body, and |
| # similarly a Drop impl in Rust. |
| ctypedef struct OwnedSlice_i32: |
| uintptr_t len; |
| int32_t *ptr; |
| |
| cdef enum: |
| Bar_u32, |
| Polygon1_u32, |
| Slice1_u32, |
| Slice2_u32, |
| Slice3_u32, |
| Slice4_u32, |
| ctypedef uint8_t Foo_u32_Tag; |
| |
| ctypedef struct Slice3_Body_u32: |
| FillRule fill; |
| OwnedSlice_u32 coords; |
| |
| ctypedef struct Slice4_Body_u32: |
| FillRule fill; |
| OwnedSlice_i32 coords; |
| |
| ctypedef struct Foo_u32: |
| Foo_u32_Tag tag; |
| Polygon_u32 polygon1; |
| OwnedSlice_u32 slice1; |
| OwnedSlice_i32 slice2; |
| Slice3_Body_u32 slice3; |
| Slice4_Body_u32 slice4; |
| |
| ctypedef struct Polygon_i32: |
| FillRule fill; |
| OwnedSlice_i32 coordinates; |
| |
| cdef enum: |
| Bar2_i32, |
| Polygon21_i32, |
| Slice21_i32, |
| Slice22_i32, |
| Slice23_i32, |
| Slice24_i32, |
| ctypedef uint8_t Baz_i32_Tag; |
| |
| ctypedef struct Slice23_Body_i32: |
| Baz_i32_Tag tag; |
| FillRule fill; |
| OwnedSlice_i32 coords; |
| |
| ctypedef struct Slice24_Body_i32: |
| Baz_i32_Tag tag; |
| FillRule fill; |
| OwnedSlice_i32 coords; |
| |
| ctypedef union Baz_i32: |
| Baz_i32_Tag tag; |
| Polygon_i32 polygon21; |
| OwnedSlice_i32 slice21; |
| OwnedSlice_i32 slice22; |
| Slice23_Body_i32 slice23; |
| Slice24_Body_i32 slice24; |
| |
| cdef enum: |
| Bar3, |
| Taz1, |
| Taz3, |
| ctypedef uint8_t Taz_Tag; |
| |
| ctypedef union Taz: |
| Taz_Tag tag; |
| int32_t taz1; |
| OwnedSlice_i32 taz3; |
| |
| cdef enum: |
| Bar4, |
| Taz2, |
| ctypedef uint8_t Tazz_Tag; |
| |
| ctypedef union Tazz: |
| Tazz_Tag tag; |
| int32_t taz2; |
| |
| cdef enum: |
| Bar5, |
| Taz5, |
| ctypedef uint8_t Tazzz_Tag; |
| |
| ctypedef union Tazzz: |
| Tazzz_Tag tag; |
| int32_t taz5; |
| |
| cdef enum: |
| Taz6, |
| Taz7, |
| ctypedef uint8_t Tazzzz_Tag; |
| |
| ctypedef union Tazzzz: |
| Tazzzz_Tag tag; |
| int32_t taz6; |
| uint32_t taz7; |
| |
| cdef enum: |
| Qux1, |
| Qux2, |
| ctypedef uint8_t Qux_Tag; |
| |
| ctypedef union Qux: |
| Qux_Tag tag; |
| int32_t qux1; |
| uint32_t qux2; |
| |
| void root(const Foo_u32 *a, |
| const Baz_i32 *b, |
| const Taz *c, |
| Tazz d, |
| const Tazzz *e, |
| const Tazzzz *f, |
| const Qux *g); |