有以下记录:
data Sleep = Sleep
{ _duration :: Maybe Int
, _drunk :: Bool
}
有没有一种方法可以做到以下事情:
deriveSomething ''Sleep
fieldName duration :: String -- "duration"
我需要这个功能来进行类型安全的数据库字段更新,例如:
setField connection key duration (Just 50)
需要注意的是,它必须与数据库无关(因此opaleye
等工具不适用)。
如果可以使用像lens
这样的标准包来实现这一点,那就更好了,但我没有找到合适的工具。
aeson
在将数据序列化为 JSON 时做了类似的事情,也许你会在其中找到一些有用的东西。 - epsilonhalbe