X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.runtime%2Fscl%2FFormatting.scl;h=9694c70d25415f67d8992ed54c34c8bd0a9adf6a;hp=04c3860b1b0249b5d2f4c86ca6e8b69594323e16;hb=refs%2Fchanges%2F38%2F238%2F2;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.scl.runtime/scl/Formatting.scl b/bundles/org.simantics.scl.runtime/scl/Formatting.scl index 04c3860b1..9694c70d2 100644 --- a/bundles/org.simantics.scl.runtime/scl/Formatting.scl +++ b/bundles/org.simantics.scl.runtime/scl/Formatting.scl @@ -1,44 +1,44 @@ -import "Prelude" -import "Vector" as Vec - -@private -importJava "java.lang.String" where - @JavaName format - format' :: String -> Vector Dynamic -> String - -""" -> format formatString arguments -Returns the format string where specific tags are replaced by argument values. -See the documentation of java.lang.String.format for details. -Examples: -> > format "%.3f" 1.2345678 -> "1.235" -> > format "%d %s %f" (3, "Hello world!", 5.6) -> "3 Hello world! 5.600000" -""" -format :: FormatArgument a => String -> a -> String -format formatString arguments = format' formatString (convertFormatArgumentToVector arguments) - -class FormatArgument a where - convertFormatArgumentToVector :: a -> Vector Dynamic - -instance FormatArgument Double where - convertFormatArgumentToVector = Vec.singletonVector . toDynamic -instance FormatArgument Float where - convertFormatArgumentToVector = Vec.singletonVector . toDynamic -instance FormatArgument Integer where - convertFormatArgumentToVector = Vec.singletonVector . toDynamic -instance FormatArgument Long where - convertFormatArgumentToVector = Vec.singletonVector . toDynamic -instance FormatArgument String where - convertFormatArgumentToVector = Vec.singletonVector . toDynamic -instance FormatArgument (a,b) where - convertFormatArgumentToVector (a,b) = Vec.vector [toDynamic a, toDynamic b] -instance FormatArgument (a,b,c) where - convertFormatArgumentToVector (a,b,c) = Vec.vector [toDynamic a, toDynamic b, toDynamic c] -instance FormatArgument (a,b,c,d) where - convertFormatArgumentToVector (a,b,c,d) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d] -instance FormatArgument (a,b,c,d,e) where - convertFormatArgumentToVector (a,b,c,d,e) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d, toDynamic e] -instance FormatArgument (a,b,c,d,e,f) where +import "Prelude" +import "Vector" as Vec + +@private +importJava "java.lang.String" where + @JavaName format + format' :: String -> Vector Dynamic -> String + +""" +> format formatString arguments +Returns the format string where specific tags are replaced by argument values. +See the documentation of java.lang.String.format for details. +Examples: +> > format "%.3f" 1.2345678 +> "1.235" +> > format "%d %s %f" (3, "Hello world!", 5.6) +> "3 Hello world! 5.600000" +""" +format :: FormatArgument a => String -> a -> String +format formatString arguments = format' formatString (convertFormatArgumentToVector arguments) + +class FormatArgument a where + convertFormatArgumentToVector :: a -> Vector Dynamic + +instance FormatArgument Double where + convertFormatArgumentToVector = Vec.singletonVector . toDynamic +instance FormatArgument Float where + convertFormatArgumentToVector = Vec.singletonVector . toDynamic +instance FormatArgument Integer where + convertFormatArgumentToVector = Vec.singletonVector . toDynamic +instance FormatArgument Long where + convertFormatArgumentToVector = Vec.singletonVector . toDynamic +instance FormatArgument String where + convertFormatArgumentToVector = Vec.singletonVector . toDynamic +instance FormatArgument (a,b) where + convertFormatArgumentToVector (a,b) = Vec.vector [toDynamic a, toDynamic b] +instance FormatArgument (a,b,c) where + convertFormatArgumentToVector (a,b,c) = Vec.vector [toDynamic a, toDynamic b, toDynamic c] +instance FormatArgument (a,b,c,d) where + convertFormatArgumentToVector (a,b,c,d) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d] +instance FormatArgument (a,b,c,d,e) where + convertFormatArgumentToVector (a,b,c,d,e) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d, toDynamic e] +instance FormatArgument (a,b,c,d,e,f) where convertFormatArgumentToVector (a,b,c,d,e,f) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d, toDynamic e, toDynamic f] \ No newline at end of file