hakyll-shortcode-0.0.2: src/Hakyll/Shortcode/Validate.hs
{-|
Copyright : (c) Nathan Bloomfield, 2017
License : GPL-3
Maintainer : nbloomf@gmail.com
Stability : experimental
-}
module Hakyll.Shortcode.Validate (
Validate(..),
validateMaybe
) where
-- | The 'Validate' class lets us approximate subtypes
-- of 'String'. Instances should not expose a constructor.
class Validate t where
-- | 'validate' acts as a safe constructor.
validate :: String -> Either String t
-- | Apply 'validate', but map the error message to 'Nothing'.
validateMaybe :: (Validate t) => String -> Maybe t
validateMaybe x = case validate x of
Right y -> Just y
Left _ -> Nothing