domaindriven-0.5.0: src/DomainDriven/Internal/Text.hs
module DomainDriven.Internal.Text where
import Data.Char
( toLower
, toUpper
)
import Data.Text (Text)
import qualified Data.Text as T
import Prelude
lowerFirst :: String -> String
lowerFirst = \case
[] -> []
c : cs -> toLower c : cs
lowerFirstT :: Text -> Text
lowerFirstT = T.pack . lowerFirst . T.unpack
upperFirst :: String -> String
upperFirst = \case
[] -> []
c : cs -> toUpper c : cs
upperFirstT :: Text -> Text
upperFirstT = T.pack . upperFirst . T.unpack
camelAppend :: String -> String -> String
camelAppend a b = a <> upperFirst b
camelAppendT :: Text -> Text -> Text
camelAppendT a b = a <> upperFirstT b