1
0

Use builtin camelTo2 function

This commit is contained in:
2025-12-25 21:19:22 +01:00
parent 4fc36be9dc
commit 92ee723d13

View File

@@ -6,23 +6,9 @@ module TeaCleaner.Options
( jsonOptions ( jsonOptions
) where ) where
import qualified Data.Aeson.TH as Aeson import qualified Data.Aeson as Aeson
import Prelude hiding (id)
import Data.Char
applyFirst :: (Char -> Char) -> String -> String
applyFirst _ [] = []
applyFirst f [x] = [f x]
applyFirst f (x:xs) = f x: xs
-- | Generic casing for symbol separated names
symbCase :: String -> String
symbCase = u . applyFirst toLower
where u [] = []
u (x:xs) | isUpper x = '_' : toLower x : u xs
| otherwise = x : u xs
jsonOptions :: Aeson.Options jsonOptions :: Aeson.Options
jsonOptions = Aeson.defaultOptions jsonOptions = Aeson.defaultOptions
{ Aeson.fieldLabelModifier = symbCase { Aeson.fieldLabelModifier = Aeson.camelTo2 '_'
} }