#ifndef HASKELL_MODEL_TYPES_H
#define HASKELL_MODEL_TYPES_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef char* QtVariant;
typedef int (*rowCountCallback) ();
typedef int (*columnCountCallback) ();
typedef QtVariant (*dataCallback) (int,int);
typedef QtVariant (*headerDataCallback) (int);

typedef struct {
   rowCountCallback    rowCountCb;
   columnCountCallback columnCountCb;
   dataCallback        dataCb;
   headerDataCallback  headerDataCb;
} HaskellModelCallbacks;

typedef int32_t HaskellModelDelegateHandle;

#ifdef __cplusplus
}
#endif

#endif // HASKELL_MODEL_TYPES