webby-0.3.1: src/Prelude.hs
module Prelude
( module Exports
-- | Custom prelude functions
, parseInt
, headMay
) where
import Control.Monad.Trans.Resource as Exports (ResourceT,
liftResourceT,
runResourceT)
import Network.HTTP.Types as Exports
import Network.Wai as Exports
import Relude as Exports hiding (get, put)
-- import Data.Text.Encoding (decodeUtf8With)
-- import Data.Text.Encoding.Error (lenientDecode)
import qualified Data.Text.Read as TR
import UnliftIO.Exception as Exports (throwIO)
-- Text formatting
import Formatting as Exports (format, sformat, (%))
import Formatting.ShortFormatters as Exports (d, sh, st, t)
parseInt :: Integral a => Text -> Maybe a
parseInt t' = either (const Nothing) Just $ fmap fst $ TR.decimal t'
headMay :: [a] -> Maybe a
headMay [] = Nothing
headMay (a:_) = Just a