From 8d06729eb3353705f5d35457c5f921407f8c0f4a Mon Sep 17 00:00:00 2001 From: dam Date: Fri, 15 Dec 2023 02:02:33 +0000 Subject: WIP: Trying to define Key. --- ttt.jai | 60 ------------------------------------------------------------ 1 file changed, 60 deletions(-) (limited to 'ttt.jai') diff --git a/ttt.jai b/ttt.jai index 25bf782..f0b554f 100644 --- a/ttt.jai +++ b/ttt.jai @@ -1185,66 +1185,6 @@ main :: () { // TODO Test input - Key :: union { - text: [4] u8; - code: u64; - } - - // Instead of checking if it's an array or string... check the type is array of u8. - to_key :: inline (value: $T) -> Key #modify { return T == u8 || T == string || (T == []u8); } { - k: Key; - #if T == u8 { - k.text[0] = value; - } - #if T == string || (T == []u8) { - assert(value.count <= 4); - for 0..value.count-1 k.text[it] = value[it]; - } - return k; - } - - operator == :: inline (a: Key, b: Key) -> bool { - return a.code == b.code; - } - - // Instead of checking if it's an array or string... check the type is array of u8. - // We'll need to use "Type_Info" and "Type_Info_Array" - // and cast T using `type_info := cast(*Type_Info)T;` - operator == :: inline (a: Key, b: $T) -> bool - #modify { - if T == u8 { - return true; - } - ti := cast(*Type_Info)T; - if ti.type == .ARRAY { - ti_array := cast(*Type_Info_Array)T; - // tia_type := ti_array.element_type.type; - return ti_array.element_type.type == .INTEGER && ti_array.element_type.runtime_size == 1; - } - return false; - // return T == u8 || T == string || (T == []u8); } { - } { - // operator == :: inline (a: Key, b: $T) -> bool #modify { return (T == [4]u8); } { - k := to_key(b); - return a == k; - } - - // k := K. {xx "01"}; - // k := to_key(xx "\0\0\01"); - // k := to_key(xx "€"); - // k := to_key(xx "A"); - k := to_key("A"); - // a: u8 = #char "A"; - a: [4]u8; - a[0] = #char "A"; - print("Is equal to 'A': >%<\n", k == a); - // b: u8 = 3; - // print("Is equal to 'A': >%<\n", k == #char); - print("Text :>%<\n", cast(string)k.text, to_standard_error = true); - print("Key :>%<\n", FormatInt.{value=k.code, base=16, minimum_digits=8}, to_standard_error = true); - return; - - if 1 { print("TEST : set and get cursor position --\n", to_standard_error = true); TUI.start(); -- cgit v1.2.3