X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.runtime%2Fscl%2FPrelude.scl;h=cce9064090ca123545e387b711e7cab902e95680;hb=refs%2Fchanges%2F08%2F1408%2F4;hp=c04cc8625aa0be2bceb1ab372f8f9fe5a7eca5c4;hpb=46ea0d713406fbd0a0d8a8e5f41b7fb8ea7001c3;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.runtime/scl/Prelude.scl b/bundles/org.simantics.scl.runtime/scl/Prelude.scl index c04cc8625..cce906409 100644 --- a/bundles/org.simantics.scl.runtime/scl/Prelude.scl +++ b/bundles/org.simantics.scl.runtime/scl/Prelude.scl @@ -38,6 +38,15 @@ class Serializable a binding :: Serializable a => Binding a ***********************************************************/ +type BooleanArray = Vector Boolean +type ByteArray = Vector Byte +type CharacterArray = Vector Character +type ShortArray = Vector Short +type IntegerArray = Vector Integer +type LongArray = Vector Long +type FloatArray = Vector Float +type DoubleArray = Vector Double + importJava "java.util.Arrays" where @private @JavaName toString @@ -1421,6 +1430,11 @@ importJava "java.lang.String" where "Creates a string from a vector of characters." @JavaName "" string :: Vector Character -> String + + getBytes :: String -> String -> ByteArray + +getBytesUTF8 :: String -> ByteArray +getBytesUTF8 str = getBytes str "UTF-8" instance Ord String where compare = compareString @@ -1484,6 +1498,14 @@ fst (x,y) = x snd :: (a,b) -> b snd (x,y) = y +@inline +mapFst :: (a -> b) -> (a,c) -> (b,c) +mapFst f (x,y) = (f x, y) + +@inline +mapSnd :: (a -> b) -> (c,a) -> (c,b) +mapSnd f (x,y) = (x, f y) + instance (Ord a, Ord b) => Ord (a, b) where compare (a0, b0) (a1, b1) = compare a0 a1 &<& compare b0 b1 @@ -2206,6 +2228,12 @@ importJava "java.lang.Throwable" where @private @JavaName toString showThrowable :: Throwable -> String + @private + @JavaName getMessage + getMessageThrowable :: Throwable -> String + @private + @JavaName getCause + getCauseThrowable :: Throwable -> Maybe Throwable importJava "java.lang.Exception" where data Exception @private @@ -2217,6 +2245,20 @@ instance Show Throwable where instance Show Exception where show = showException +class Throwable e where + toThrowable :: e -> Throwable + +messageOfException :: Throwable e => e -> String +messageOfException = getMessageThrowable . toThrowable + +causeOfException :: Throwable e => e -> Maybe Throwable +causeOfException = getCauseThrowable . toThrowable + +instance Throwable Throwable where + toThrowable = id +instance Throwable Exception where + toThrowable = Java.unsafeCoerce + "Prints the given value in the console." @inline print :: Show a => a -> ()