diff options
Diffstat (limited to 'docs/application/interface.md')
| -rw-r--r-- | docs/application/interface.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/docs/application/interface.md b/docs/application/interface.md new file mode 100644 index 0000000..1493aff --- /dev/null +++ b/docs/application/interface.md @@ -0,0 +1,46 @@ +# Interface + +--- + +General definitions used throughout the code + +## Object Definitions + +```c +typedef union { + bool b; + uint8_t u8; + uint16_t u16; + uint32_t u32; + uint64_t u64; + int8_t i8; + int16_t i16; + int32_t i32; + int64_t i64; + float f32; + double f64; + void *ptr; +} kpl_any; + +typedef size_t kpl_any_hash_fn(const kpl_any a); + +typedef bool kpl_any_eq_fn(const kpl_any a, const kpl_any b); + +typedef ssize_t kpl_any_cmp_fn(const kpl_any a, const kpl_any b); + +typedef int32_t kpl_any_print_fn(const kpl_any a, FILE *file, size_t idnt, uint32_t print_opts); + +typedef void kpl_any_free_fn(kpl_any a); + +typedef struct { + kpl_any_hash_fn *hash_fn; + kpl_any_eq_fn *eq_fn; + kpl_any_cmp_fn *cmp_fn; + kpl_any_print_fn *print_fn; + kpl_any_free_fn *free_fn; +} kpl_any_interace; + +typedef struct { + any value, info; +} kpl_result; +``` |
