class jnc.DynamicLayoutSink

class DynamicLayoutSink {
    // methods

    virtual void onStruct(
        jnc.StructType* structType,
        size_t offset,
        void const* p
    );

    virtual void onArray(
        jnc.ModuleItemDecl* decl,
        jnc.Type* type,
        size_t elementCount,
        jnc.PtrTypeFlags ptrTypeFlags,
        size_t offset,
        void const* p
    );

    virtual void onField(
        jnc.ModuleItemDecl* decl,
        jnc.Type* type,
        jnc.PtrTypeFlags ptrTypeFlags,
        size_t offset,
        void const* p
    );

    virtual void onBitField(
        jnc.ModuleItemDecl* decl,
        jnc.Type* type,
        uint_t bitOffset,
        uint_t bitCount,
        jnc.PtrTypeFlags ptrTypeFlags,
        size_t offset,
        void const* p
    );

    virtual void onGroupOpened(
        jnc.ModuleItemDecl* decl,
        size_t offset
    );

    virtual void onGroupClosed(
        jnc.ModuleItemDecl* decl,
        size_t offset,
        void const* p,
        size_t size
    );
};