diff --git a/yesod-form/Yesod/Form/Functions.hs b/yesod-form/Yesod/Form/Functions.hs index 8a36710e..282e57c9 100644 --- a/yesod-form/Yesod/Form/Functions.hs +++ b/yesod-form/Yesod/Form/Functions.hs @@ -39,6 +39,7 @@ module Yesod.Form.Functions -- * Utilities , fieldSettingsLabel , parseHelper + , parseHelperGen ) where import Yesod.Form.Types @@ -428,6 +429,15 @@ fieldSettingsLabel msg = FieldSettings (SomeMessage msg) Nothing Nothing Nothing parseHelper :: (Monad m, RenderMessage site FormMessage) => (Text -> Either FormMessage a) -> [Text] -> [FileInfo] -> m (Either (SomeMessage site) (Maybe a)) -parseHelper _ [] _ = return $ Right Nothing -parseHelper _ ("":_) _ = return $ Right Nothing -parseHelper f (x:_) _ = return $ either (Left . SomeMessage) (Right . Just) $ f x +parseHelper = parseHelperGen + +-- | A generalized version of 'parseHelper', allowing any type for the message +-- indicating a bad parse. +-- +-- Since 1.3.6 +parseHelperGen :: (Monad m, RenderMessage site msg) + => (Text -> Either msg a) + -> [Text] -> [FileInfo] -> m (Either (SomeMessage site) (Maybe a)) +parseHelperGen _ [] _ = return $ Right Nothing +parseHelperGen _ ("":_) _ = return $ Right Nothing +parseHelperGen f (x:_) _ = return $ either (Left . SomeMessage) (Right . Just) $ f x diff --git a/yesod-form/yesod-form.cabal b/yesod-form/yesod-form.cabal index 98fc12c9..21aa9b9d 100644 --- a/yesod-form/yesod-form.cabal +++ b/yesod-form/yesod-form.cabal @@ -1,5 +1,5 @@ name: yesod-form -version: 1.3.5.2 +version: 1.3.6 license: MIT license-file: LICENSE author: Michael Snoyman