5 importJava "java.lang.String" where
7 format' :: String -> Vector Dynamic -> String
10 > format formatString arguments
11 Returns the format string where specific tags are replaced by argument values.
12 See the documentation of java.lang.String.format for details.
14 > > format "%.3f" 1.2345678
16 > > format "%d %s %f" (3, "Hello world!", 5.6)
17 > "3 Hello world! 5.600000"
19 format :: FormatArgument a => String -> a -> String
20 format formatString arguments = format' formatString (convertFormatArgumentToVector arguments)
22 class FormatArgument a where
23 convertFormatArgumentToVector :: a -> Vector Dynamic
25 instance FormatArgument Double where
26 convertFormatArgumentToVector = Vec.singletonVector . toDynamic
27 instance FormatArgument Float where
28 convertFormatArgumentToVector = Vec.singletonVector . toDynamic
29 instance FormatArgument Integer where
30 convertFormatArgumentToVector = Vec.singletonVector . toDynamic
31 instance FormatArgument Long where
32 convertFormatArgumentToVector = Vec.singletonVector . toDynamic
33 instance FormatArgument String where
34 convertFormatArgumentToVector = Vec.singletonVector . toDynamic
35 instance FormatArgument (a,b) where
36 convertFormatArgumentToVector (a,b) = Vec.vector [toDynamic a, toDynamic b]
37 instance FormatArgument (a,b,c) where
38 convertFormatArgumentToVector (a,b,c) = Vec.vector [toDynamic a, toDynamic b, toDynamic c]
39 instance FormatArgument (a,b,c,d) where
40 convertFormatArgumentToVector (a,b,c,d) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d]
41 instance FormatArgument (a,b,c,d,e) where
42 convertFormatArgumentToVector (a,b,c,d,e) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d, toDynamic e]
43 instance FormatArgument (a,b,c,d,e,f) where
44 convertFormatArgumentToVector (a,b,c,d,e,f) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d, toDynamic e, toDynamic f]