module Shop.Data.Item where import Data.Map (Map, fromList) import qualified Data.Map as Map data Item = Item { itemName :: String , itemImportance :: Int } deriving ( Eq, Ord, Show, Read ) defItem :: Item defItem = Item { itemName="", itemImportance=0 } createItem :: String -> Item createItem s = defItem { itemName=s } createItemList :: [ String ] -> [ Item ] createItemList = map createItem saveItemList :: FilePath -> [ Item ] -> IO () saveItemList f items = do let output = map show items writeFile f $ unlines output loadItemList :: FilePath -> IO [ Item ] loadItemList f = do contents <- readFile f let items = lines contents return $ map read items createItemMap :: [ Item ] -> Map String Item createItemMap itemList = fromList $ map (\i -> (itemName i, i) ) itemList