]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.runtime/scl/Set.scl
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.scl.runtime / scl / Set.scl
1 import "Iterator" as Iterator
2
3 importJava "java.util.Set" where
4     data T a
5     
6     contains :: T a -> a -> Boolean
7     size :: T a -> Integer
8     isEmpty :: T a -> Boolean
9     
10     @private
11     iterator :: T a -> Iterator.T a
12
13 @inline
14 iter :: (a -> <e> b) -> T a -> <e> ()
15 iter f s = runProc (Iterator.iter f (iterator s))
16
17 @inline
18 iterB :: (a -> <e> Boolean) -> T a -> <e> Boolean
19 iterB f s = runProc (Iterator.iterB f (iterator s))
20
21 @inline
22 iterI :: (Integer -> a -> <e> b) -> T a -> <e> ()
23 iterI f s = runProc (Iterator.iterI f (iterator s))
24
25 @inline
26 fold :: (a -> b  -> <e> a) -> a -> T b -> <e> a
27 fold f init s = runProc (Iterator.fold f init (iterator s))
28
29 importJava "java.util.Collections" where
30     singleton :: a -> T a
31
32     @JavaName emptySet
33     empty :: T a
34
35 importJava "gnu.trove.set.hash.THashSet" where
36     @JavaName "<init>"
37     fromList :: [a] -> T a
38
39 importJava "java.util.ArrayList" where
40     @JavaName "<init>"
41     toList :: T a -> [a]