如何在Persistent中存储Enum ADT

时间:2014-07-18 09:14:48

标签: haskell yesod persistent

如何在Persistent中存储枚举?

说你有 data State = Ready |尚未准备好错误

如何将其存储在Persistent数据库中?

2 个答案:

答案 0 :(得分:6)

使用derivePersistentField非常简单,Yesod docs显示。对于你的情况,你可以做这样的事情

-- State.hs
{-# LANGUAGE TemplateHaskell #-}
module State where

import Database.Persist.TH
import Prelude

data State = Ready | Unready | Error
    deriving (Show, Read, Eq)
derivePersistField "State"

然后,您可以将其导入并在模型中用作:

-- Model.hs
import State

SomethingSomething
    state State

答案 1 :(得分:2)