made map and set functions able to be 'methods'
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 11 Oct 2021 04:29:25 +0000 (23:29 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 11 Oct 2021 04:29:25 +0000 (23:29 -0500)
core/container/map.onyx
core/container/set.onyx
tests/i32map.onyx

index f9c15df66e88526b292055f98efb5a76a9aa2eeb..c97d44ad60e712f8b876b36bde0cb045e1c55d15 100644 (file)
@@ -23,6 +23,15 @@ Map :: struct (K: type_expr, V: type_expr) {
         key   : K;
         value : V;
     }
+
+    has     :: (package core.map).has
+    get     :: (package core.map).get
+    get_ptr :: (package core.map).get_ptr
+    put     :: (package core.map).put
+    delete  :: (package core.map).delete
+    update  :: (package core.map).update
+    clear   :: (package core.map).clear
+    empty   :: (package core.map).empty
 }
 
 make :: ($Key: type_expr, $Value: type_expr, default := __zero_value(Value)) -> Map(Key, Value) {
index 51ce0cbb48de6eade5b187f83fccf09a24a703fa..d4fb02bf79f9d1b2509af9719fde79f973713779 100644 (file)
@@ -20,6 +20,14 @@ Set :: struct (T: type_expr) {
         next  : i32;
         value : T;
     }
+
+    has      :: (package core.set).has
+    get      :: (package core.set).get
+    insert   :: (package core.set).insert
+    remove   :: (package core.set).remove
+    clear    :: (package core.set).clear
+    empty    :: (package core.set).empty
+    iterator :: (package core.set).iterator
 }
 
 make :: ($T: type_expr, default := __zero_value(T)) -> Set(T) {
index a61bc63a5f2ee0520ef87c191403b375f325ae8e..09e62c62006dddc19395e908525559f0fb8646c0 100644 (file)
@@ -12,7 +12,7 @@ main :: (args: [] cstr) {
         map.free(^imap);
     }
     map.put(^imap, 50, "Hello ");
-    map.put(^imap, 1234, "World!");
+    imap->put(1234, "World!");
 
     println(map.has(^imap, 50));
     println(map.has(^imap, 51));