]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 import "StandardLibrary" hiding (contains)\r
2 \r
3 importJava "gnu.trove.map.hash.THashMap" where\r
4     data T a b\r
5     \r
6     @JavaName "<init>"\r
7     create :: () -> <Proc> T a b\r
8     put :: T a b -> a -> b -> <Proc> Maybe b\r
9     get :: T a b -> a -> <Proc> Maybe b\r
10     @JavaName get\r
11     unsafeGet :: T a b -> a -> <Proc> b\r
12     \r
13     contains :: T a b -> a -> <Proc> Boolean\r
14     size :: T a b -> <Proc> Integer\r
15     \r
16 importJava "org.simantics.scl.osgi.map.HashMapUtils" where \r
17     entries :: T a b -> <Proc> [(a,b)]\r
18 \r
19 fromList :: [(a,b)] -> <Proc> T a b\r
20 fromList entries = do\r
21     result = create ()\r
22     for entries (\(k,v) -> do put result k v; ())\r
23     result