#ifndef WXD_VARIANT_H
#define WXD_VARIANT_H 1
#include "wxd_types.h"
typedef struct wxd_Variant_t wxd_Variant_t;
#ifdef __cplusplus
extern "C" {
#endif
WXD_EXPORTED wxd_Variant_t*
wxd_Variant_CreateEmpty(void);
WXD_EXPORTED wxd_Variant_t*
wxd_Variant_Clone(const wxd_Variant_t* variant);
WXD_EXPORTED void
wxd_Variant_Destroy(wxd_Variant_t* variant);
WXD_EXPORTED void
wxd_Variant_Assign(wxd_Variant_t* self, const wxd_Variant_t* other);
WXD_EXPORTED bool
wxd_Variant_IsNull(const wxd_Variant_t* variant);
WXD_EXPORTED void
wxd_Variant_MakeNull(wxd_Variant_t* variant);
WXD_EXPORTED int
wxd_Variant_GetTypeName_Utf8(const wxd_Variant_t* variant, char* out, size_t out_len);
WXD_EXPORTED void
wxd_Variant_SetBool(wxd_Variant_t* variant, bool value);
WXD_EXPORTED void
wxd_Variant_SetInt32(wxd_Variant_t* variant, int32_t value);
WXD_EXPORTED void
wxd_Variant_SetInt64(wxd_Variant_t* variant, int64_t value);
WXD_EXPORTED void
wxd_Variant_SetDouble(wxd_Variant_t* variant, double value);
WXD_EXPORTED void
wxd_Variant_SetString_Utf8(wxd_Variant_t* variant, const char* s, int len);
WXD_EXPORTED void
wxd_Variant_SetDateTime(wxd_Variant_t* variant, const wxd_DateTime_t* value);
WXD_EXPORTED void
wxd_Variant_SetBitmap(wxd_Variant_t* variant, const wxd_Bitmap_t* bmp);
WXD_EXPORTED bool
wxd_Variant_GetBool(const wxd_Variant_t* variant, bool* out_value);
WXD_EXPORTED bool
wxd_Variant_GetInt32(const wxd_Variant_t* variant, int32_t* out_value);
WXD_EXPORTED bool
wxd_Variant_GetInt64(const wxd_Variant_t* variant, int64_t* out_value);
WXD_EXPORTED bool
wxd_Variant_GetDouble(const wxd_Variant_t* variant, double* out_value);
WXD_EXPORTED int
wxd_Variant_GetString_Utf8(const wxd_Variant_t* variant, char* out, size_t out_len);
WXD_EXPORTED wxd_DateTime_t*
wxd_Variant_GetDateTime(const wxd_Variant_t* variant);
WXD_EXPORTED wxd_Bitmap_t*
wxd_Variant_GetBitmapClone(const wxd_Variant_t* variant);
WXD_EXPORTED void
wxd_Variant_SetArrayString(wxd_Variant_t* variant, const wxd_ArrayString_t* arr);
WXD_EXPORTED wxd_ArrayString_t*
wxd_Variant_GetArrayStringClone(const wxd_Variant_t* variant);
#ifdef __cplusplus
}
#endif
#endif