aboutsummaryrefslogtreecommitdiff
path: root/include/kpl/class.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/kpl/class.h')
-rw-r--r--include/kpl/class.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/kpl/class.h b/include/kpl/class.h
new file mode 100644
index 0000000..b1b7054
--- /dev/null
+++ b/include/kpl/class.h
@@ -0,0 +1,34 @@
+/*
+ * The kpl class a 64bit value with an table of functions
+ */
+
+typedef uint8_t kpl_utf8[4];
+
+typedef union {
+ uint8_t u8;
+ int8_t i8;
+ uint16_t u16;
+ int16_t i16;
+ uint32_t u32;
+ int32_t i32;
+ uint64_t u64;
+ int64_t i64;
+ kpl_utf8 utf8;
+ float f32;
+ double f64;
+ void *ptr;
+} kpl_value;
+
+typedef struct {
+ kpl_value value;
+ int64_t tag;
+} kpl_result;
+
+typedef struct {
+// TODO KPL INTERFACE
+} kpl_interface;
+
+typedef struct {
+ kpl_value value;
+ kpl_interface *interface;
+} kpl_class;