aboutsummaryrefslogtreecommitdiff
path: root/ttt.jai
diff options
context:
space:
mode:
authordam <dam@gudinoff>2023-12-15 02:02:33 +0000
committerdam <dam@gudinoff>2023-12-15 02:02:33 +0000
commit8d06729eb3353705f5d35457c5f921407f8c0f4a (patch)
treea7fb3d6a25e7948e7556aa61be3913c3bf584890 /ttt.jai
parentef69c4f8daa14a580dd8bb442cae551f08711ca2 (diff)
downloadtask-time-tracker-8d06729eb3353705f5d35457c5f921407f8c0f4a.tar.zst
task-time-tracker-8d06729eb3353705f5d35457c5f921407f8c0f4a.zip
WIP: Trying to define Key.
Diffstat (limited to 'ttt.jai')
-rw-r--r--ttt.jai60
1 files changed, 0 insertions, 60 deletions
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();