git.iko.soy/typeable/pandoc
on master help sign in
Added safeRead to Text.Pandoc.Shared.
commit10cdd59fa8664caf5ac73dc06ee7076a4bbe69bd authorJohn MacFarlane <jgm@berkeley.edu> dateThu 9 Aug 2012, 07:52 (14 years ago) parent244dae8
1 file changed+12−1
src/Text/Pandoc/Shared.hs+12−1
src/Text/Pandoc/Shared.hs+12−1
@@ -65,7 +65,9 @@ module Text.Pandoc.Shared (
6565 readDataFile,
6666 -- * Error handling
6767 err,
68− warn
68+ warn,
69+ -- * Safe read
70+ safeRead
6971 ) where
7072
7173import Text.Pandoc.Definition
@@ -489,3 +491,12 @@ warn :: String -> IO ()
489491warn msg = do
490492 name <- getProgName
491493 UTF8.hPutStrLn stderr $ name ++ ": " ++ msg
494+
495+--
496+-- Safe read
497+--
498+
499+safeRead :: (Monad m, Read a) => String -> m a
500+safeRead s = case reads s of
501+ (d,[]):_ -> return d
502+ _ -> fail $ "Could not read `" ++ s ++ "'"