如何存储枚举ADT在持续

问题描述 投票:7回答:2

你如何存储持久性枚举?

假设你有一个数据状态=就绪|没有准备|错误

你如何保存这在持久性数据库?

haskell yesod persistent
2个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.