如何在Persistent中存储Enum ADT

use*_*278 7 haskell persistent yesod

如何在Persistent中存储枚举?

假设您有数据State = Ready | 尚未准备好 错误

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

bhe*_*ilr 6

derivePersistentField正如Yesod文档所示,这非常简单.对于你的情况,你可以做这样的事情

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

import Database.Persist.TH
import Prelude

data State = Ready | Unready | Error
    deriving (Show, Read, Eq)
derivePersistField "State"
Run Code Online (Sandbox Code Playgroud)

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

-- Model.hs
import State

SomethingSomething
    state State
Run Code Online (Sandbox Code Playgroud)