#ifndef CORE_P_H_INCLUDED
#define CORE_P_H_INCLUDED
#include "Core.h"

typedef struct {
    CoreClassDescriptor       *class_descriptor;
} CorePart;

typedef struct CoreObj_tag {
    CorePart        core;
} CoreObj;

typedef struct {
    char                *class_name;
    CoreClassDescriptor *super_class;
    int                 size_of_instance;
    void                (*class_initializer)(void);
    void                (*initializer)(Core p);
    void                (*finalizer)(Core p);
} CoreClassDescriptorPart;

struct CoreClassDescriptor_tag {
    CoreClassDescriptorPart core;
};

extern CoreClassDescriptor core_class_descriptor;

#endif /* CORE_P_H_INCLUDED */