| 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_A1, |
| A_A2, |
| A_A3, |
| # Must be last for serialization purposes |
| A_Sentinel, |
| ctypedef uint8_t A; |
| |
| cdef enum: |
| B_B1, |
| B_B2, |
| B_B3, |
| # Must be last for serialization purposes |
| B_Sentinel, |
| ctypedef uint8_t B; |
| |
| cdef enum: |
| C_C1, |
| C_C2, |
| C_C3, |
| # Must be last for serialization purposes |
| C_Sentinel, |
| ctypedef uint8_t C_Tag; |
| |
| ctypedef struct C_C1_Body: |
| C_Tag tag; |
| uint32_t a; |
| |
| ctypedef struct C_C2_Body: |
| C_Tag tag; |
| uint32_t b; |
| |
| ctypedef union C: |
| C_Tag tag; |
| C_C1_Body c1; |
| C_C2_Body c2; |
| |
| void root(A a, B b, C c); |