-- | File IO module SSTG.Utils.FileIO ( writeState , readState , writePrettyState ) where import SSTG.Core import SSTG.Utils.Printing import Text.Read -- | Write `State` to a target file. writeState :: FilePath -> State -> IO () writeState file state = writeFile file (show state) -- | Recover a `State` from a stored file. `Nothing` denotes failure. readState :: FilePath -> IO (Maybe State) readState file = readFile file >>= \s -> return (readMaybe s :: Maybe State) -- | Write a pretty-printed state to a file. Do not use this for execution -- `State` recovery; use `writeState` instead. writePrettyState :: FilePath -> ([LiveState], [DeadState]) -> IO () writePrettyState file lds = writeFile file (pprLivesDeadsStr lds)