imm-1.3.0.0: src/lib/Imm/Aeson.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Imm.Aeson where
-- {{{ Imports
import Imm.Prelude
import Data.Aeson
import URI.ByteString
-- }}}
parseJsonURI :: MonadPlus m => Value -> m URI
parseJsonURI (String s) = either (const mzero) return $ parseURI laxURIParserOptions $ encodeUtf8 s
parseJsonURI _ = mzero
toJsonURI :: URI -> Value
toJsonURI = String . decodeUtf8 . serializeURIRef'