module DDC.Core.Salt.Name.PrimStore
( PrimStore (..)
, readPrimStore)
where
import DDC.Base.Pretty
import Control.DeepSeq
data PrimStore
= PrimStoreSize
| PrimStoreSize2
| PrimStoreCreate
| PrimStoreCheck
| PrimStoreRecover
| PrimStoreAlloc
| PrimStoreRead
| PrimStoreWrite
| PrimStorePlusAddr
| PrimStoreMinusAddr
| PrimStorePeek
| PrimStorePoke
| PrimStorePlusPtr
| PrimStoreMinusPtr
| PrimStoreMakePtr
| PrimStoreTakePtr
| PrimStoreCastPtr
deriving (Eq, Ord, Show)
instance NFData PrimStore
instance Pretty PrimStore where
ppr p
= case p of
PrimStoreSize -> text "size#"
PrimStoreSize2 -> text "size2#"
PrimStoreCreate -> text "create#"
PrimStoreCheck -> text "check#"
PrimStoreRecover -> text "recover#"
PrimStoreAlloc -> text "alloc#"
PrimStoreRead -> text "read#"
PrimStoreWrite -> text "write#"
PrimStorePlusAddr -> text "plusAddr#"
PrimStoreMinusAddr -> text "minusAddr#"
PrimStorePeek -> text "peek#"
PrimStorePoke -> text "poke#"
PrimStorePlusPtr -> text "plusPtr#"
PrimStoreMinusPtr -> text "minusPtr#"
PrimStoreMakePtr -> text "makePtr#"
PrimStoreTakePtr -> text "takePtr#"
PrimStoreCastPtr -> text "castPtr#"
readPrimStore :: String -> Maybe PrimStore
readPrimStore str
= case str of
"size#" -> Just PrimStoreSize
"size2#" -> Just PrimStoreSize2
"create#" -> Just PrimStoreCreate
"check#" -> Just PrimStoreCheck
"recover#" -> Just PrimStoreRecover
"alloc#" -> Just PrimStoreAlloc
"read#" -> Just PrimStoreRead
"write#" -> Just PrimStoreWrite
"plusAddr#" -> Just PrimStorePlusAddr
"minusAddr#" -> Just PrimStoreMinusAddr
"peek#" -> Just PrimStorePeek
"poke#" -> Just PrimStorePoke
"plusPtr#" -> Just PrimStorePlusPtr
"minusPtr#" -> Just PrimStoreMinusPtr
"makePtr#" -> Just PrimStoreMakePtr
"takePtr#" -> Just PrimStoreTakePtr
"castPtr#" -> Just PrimStoreCastPtr
_ -> Nothing