]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.osgi/scl/Extras/HashMap.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.osgi / scl / Extras / HashMap.scl
diff --git a/bundles/org.simantics.scl.osgi/scl/Extras/HashMap.scl b/bundles/org.simantics.scl.osgi/scl/Extras/HashMap.scl
new file mode 100644 (file)
index 0000000..fae9f31
--- /dev/null
@@ -0,0 +1,23 @@
+import "StandardLibrary" hiding (contains)\r
+\r
+importJava "gnu.trove.map.hash.THashMap" where\r
+    data T a b\r
+    \r
+    @JavaName "<init>"\r
+    create :: () -> <Proc> T a b\r
+    put :: T a b -> a -> b -> <Proc> Maybe b\r
+    get :: T a b -> a -> <Proc> Maybe b\r
+    @JavaName get\r
+    unsafeGet :: T a b -> a -> <Proc> b\r
+    \r
+    contains :: T a b -> a -> <Proc> Boolean\r
+    size :: T a b -> <Proc> Integer\r
+    \r
+importJava "org.simantics.scl.osgi.map.HashMapUtils" where \r
+    entries :: T a b -> <Proc> [(a,b)]\r
+\r
+fromList :: [(a,b)] -> <Proc> T a b\r
+fromList entries = do\r
+    result = create ()\r
+    for entries (\(k,v) -> do put result k v; ())\r
+    result 
\ No newline at end of file