struct jnc_Variant

struct jnc_Variant {
    // fields

    union {
        int8_t m_int8;
        uint8_t m_uint8;
        int16_t m_int16;
        uint16_t m_uint16;
        int32_t m_int32;
        uint32_t m_uint32;
        int64_t m_int64;
        uint64_t m_uint64;
        intptr_t m_intptr;
        uintptr_t m_uintptr;
        float m_float;
        double m_double;
        void* m_p;
        jnc_IfaceHdr* m_classPtr;
        jnc_DataPtr m_dataPtr;
        jnc_FunctionPtr m_functionPtr;
        jnc_PropertyPtr m_propertyPtr;
        jnc_String m_string;
        char m_buffer[jnc_Variant_DataSize];
        struct jnc_Variant::@7::@9 m_data;
    };

    char _m_padding[sizeof(void *)];
    jnc_Type* m_type;
};