Files
loop/src/Dodge/Module.hs
T
2022-02-21 20:51:01 +00:00

18 lines
419 B
Haskell

module Dodge.Module
( moduleSizes
, moduleStrings
) where
import Dodge.Data
import Control.Lens
import Data.Maybe
moduleSizes :: Item -> Int
moduleSizes = moduleFold (+) (^? modSize) 0
moduleStrings :: Item -> [String]
moduleStrings = moduleFold (++) (^? modName) []
moduleFold :: (m -> m -> m) -> (ItemModule -> Maybe m) -> m -> Item -> m
moduleFold g f e = foldr (g . fromMaybe e . f) e . _itModules