packages feed

kit-0.7.9: Text/PList.hs

{-# LANGUAGE TypeSynonymInstances #-}
module Text.PList (
    PListType(..), 
    PListObjectItem(..),
    PListFile(..),
    val, 
    arr, 
    obj, 
    tobj,
    plist,
    (~>)) where

-------------------------------------------------------------------------------
data PListFile = PListFile String String [PListObjectItem] -- Charset, root uuid, and the object to serialize

-- | A Key/Value pair in a PList Object
data PListObjectItem = PListObjectItem String PListType deriving Eq 

data PListType = PListValue String
               | PListArray [PListType]
               | PListObject Bool [PListObjectItem]
               deriving Eq

plist :: String -> String -> [PListObjectItem] -> PListFile
plist a b c = PListFile a b c

val :: String -> PListType
val = PListValue

arr :: [PListType] -> PListType
arr = PListArray

obj :: [PListObjectItem] -> PListType
obj = PListObject True

tobj :: [PListObjectItem] -> PListType
tobj = PListObject False

infixl 1 ~> 
(~>) :: String -> PListType -> PListObjectItem
a ~> b = PListObjectItem a b