module SSTG.Utils.FileIO
( writeState
, readState
, writePrettyState
) where
import SSTG.Core.Execution.Models
import SSTG.Core.Execution.Stepping
import SSTG.Utils.Printing
import Text.Read
writeState :: FilePath -> State -> IO ()
writeState file state = writeFile file (show state)
readState :: FilePath -> IO (Maybe State)
readState file = readFile file >>= \s -> return (readMaybe s :: Maybe State)
writePrettyState :: FilePath -> ([LiveState], [DeadState]) -> IO ()
writePrettyState file lds = writeFile file (pprLivesDeadsStr lds)