首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模板-haskell可以用来生成准引号吗?

模板-haskell可以用来生成准引号吗?
EN

Stack Overflow用户
提问于 2014-07-25 10:01:23
回答 1查看 113关注 0票数 1

我目前正在从事的一个项目广泛使用了persistent。我不想使用persistent的准引用语法来指定模型,而是使用json。现在,我使用一个脚本来生成persistent期望使用simple-templates的准引用。这在工作流中增加了一个相当尴尬的步骤。使用template-haskell可以避免这种情况吗?

这是当前由脚本生成的:

代码语言:javascript
复制
-- File : ProjSpecific.Models

share [mkPersist sqlSettings, mkMigrate "migrateAll"]
[persistLowerCase|
Person
    name String
    age Int Maybe
    deriving Show
BlogPost
    title String
    authorId PersonId
    deriving Show
|]

理想情况下,我希望这样做:

代码语言:javascript
复制
-- File : ProjSpecific.Config

import Data.Aeson.QQ
import Data.Aeson (Value)

models :: Value
models = [aesonQQ| {some json encoding of above models} |]

代码语言:javascript
复制
-- File : ProjSpecific.Models

complie time logic to generate the persistent models

对于如何做到这一点,有什么想法吗?或者有更好的方法来实现我想要做的事情呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-25 11:11:12

是的,应该是相对无痛的。您实际上希望使用来自persistLowerCasepersistLowerCase字段,这将为您提供一个String -> Q Exp类型的函数。使用预处理器将JSON转换为预期的语法,然后将其传递给函数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24953088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档