Revision 706f7f51 htools/Ganeti/THH.hs
b/htools/Ganeti/THH.hs | ||
---|---|---|
63 | 63 |
|
64 | 64 |
import qualified Text.JSON as JSON |
65 | 65 |
|
66 |
import Ganeti.HTools.JSON |
|
67 |
|
|
66 | 68 |
-- * Exported types |
67 | 69 |
|
68 | 70 |
type Container = M.Map String |
... | ... | |
205 | 207 |
| otherwise = AppE f x |
206 | 208 |
|
207 | 209 |
-- | Container loader |
208 |
readContainer :: (Monad m) => JSON.JSObject a -> m (Container a) |
|
209 |
readContainer = return . M.fromList . JSON.fromJSObject |
|
210 |
readContainer :: (Monad m, JSON.JSON a) => |
|
211 |
JSON.JSObject JSON.JSValue -> m (Container a) |
|
212 |
readContainer obj = do |
|
213 |
let kjvlist = JSON.fromJSObject obj |
|
214 |
kalist <- mapM (\(k, v) -> fromKeyValue k v >>= \a -> return (k, a)) kjvlist |
|
215 |
return $ M.fromList kalist |
|
210 | 216 |
|
211 | 217 |
-- | Container dumper |
212 | 218 |
showContainer :: (JSON.JSON a) => Container a -> JSON.JSValue |
Also available in: Unified diff