postgresql-cube-0.1.0.0: src/Database/PostgreSQL/Cube.hs
{-# LANGUAGE OverloadedStrings #-}
module Database.PostgreSQL.Cube (Cube(..))where
import Database.PostgreSQL.Simple.ToField
import Data.List (intersperse, intercalate)
import Data.ByteString.Builder (byteString, char8)
data Cube = Cube [[Float]]
instance ToField Cube where
toField (Cube cs) = Many $
Plain (byteString "CUBE('") :
(intercalate [comma] $ map point cs) ++
[Plain (byteString "')")]
where comma = Plain (char8 ',')
point lst = Plain (char8 '(') :
(intersperse comma $ map toField lst) ++
[Plain (char8 ')')]