-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A converter for spinal, snake and camel case
--
-- A parser-based converter library for spinal, snake and camel case.
@package cases
@version 0.1.0
module Cases
-- | Extract separate words from an arbitrary text using a smart parser and
-- produce a new text using case transformation and delimiter functions.
--
-- Note: to skip case transformation use the id function.
process :: CaseTransformer -> Delimiter -> Text -> Text
type CaseTransformer = Part -> Part
lower :: CaseTransformer
upper :: CaseTransformer
title :: CaseTransformer
type Delimiter = Folder (Maybe Text)
spinal :: Delimiter
snake :: Delimiter
camel :: Delimiter
-- | Transform an arbitrary text into a lower spinal case.
--
-- Same as (process lower spinal).
spinalize :: Text -> Text
-- | Transform an arbitrary text into a lower snake case.
--
-- Same as (process lower snake).
snakify :: Text -> Text
-- | Transform an arbitrary text into a camel case, while preserving the
-- case of the first character.
--
-- Same as (process id camel).
camelize :: Text -> Text