hydrogen-data 0.7.1 → 0.10
raw patch · 4 files changed
+142/−12 lines, 4 filesdep +hydrogen-parsingdep −hydrogen-utildep ~hydrogen-preludedep ~hydrogen-syntaxPVP ok
version bump matches the API change (PVP)
Dependencies added: hydrogen-parsing
Dependencies removed: hydrogen-util
Dependency ranges changed: hydrogen-prelude, hydrogen-syntax
API changes (from Hackage documentation)
+ Hydrogen.Data: getBool :: Monad m => Data -> m Bool
+ Hydrogen.Data: getConstant :: Monad m => Data -> m String
+ Hydrogen.Data: getDate :: Monad m => Data -> m Day
+ Hydrogen.Data: getDateTime :: Monad m => Data -> m ZonedTime
+ Hydrogen.Data: getLink :: Monad m => Data -> m String
+ Hydrogen.Data: getNodeList :: Data -> [Data]
+ Hydrogen.Data: getNodeMap :: Data -> Map String Data
+ Hydrogen.Data: getNumber :: Monad m => Data -> m Rational
+ Hydrogen.Data: getString :: Monad m => Data -> m String
+ Hydrogen.Data: getTime :: Monad m => Data -> m TimeOfDay
+ Hydrogen.Data: getUUID :: Monad m => Data -> m UUID
+ Hydrogen.Data: getVersion :: Monad m => Data -> m Version
+ Hydrogen.Data: isBool :: Data -> Bool
+ Hydrogen.Data: isConstant :: Data -> Bool
+ Hydrogen.Data: isDate :: Data -> Bool
+ Hydrogen.Data: isDateTime :: Data -> Bool
+ Hydrogen.Data: isLink :: Data -> Bool
+ Hydrogen.Data: isNode :: Data -> Bool
+ Hydrogen.Data: isNumber :: Data -> Bool
+ Hydrogen.Data: isString :: Data -> Bool
+ Hydrogen.Data: isTime :: Data -> Bool
+ Hydrogen.Data: isUUID :: Data -> Bool
+ Hydrogen.Data: isVersion :: Data -> Bool
+ Hydrogen.Data: parseData :: Parser POPs Data
Files
- README.md +0/−0
- hydrogen-data.cabal +8/−8
- src/Hydrogen/Data.hs +133/−2
- src/Hydrogen/Data/Parser.hs +1/−2
+ README.md view
hydrogen-data.cabal view
@@ -1,15 +1,15 @@ name: hydrogen-data-version: 0.7.1-homepage: https://github.com/scravy/hydrogen-data+version: 0.10+homepage: https://scravy.de/hydrogen-data/ synopsis: Hydrogen Data license: BSD3 license-file: LICENSE-extra-source-files: CHANGELOG.md+extra-source-files: CHANGELOG.md, README.md author: Julian Fleischer-maintainer: julfleischer@paypal.com+maintainer: julian@scravy.de category: Language build-type: Simple-cabal-version: >=1.18+cabal-version: >=1.14 source-repository head type: git@@ -21,9 +21,9 @@ , Hydrogen.Data.Types build-depends: base ==4.7.* , containers ==0.5.*- , hydrogen-prelude ==0.7.1- , hydrogen-syntax ==0.7.1- , hydrogen-util ==0.7.1+ , hydrogen-prelude ==0.10+ , hydrogen-parsing ==0.10+ , hydrogen-syntax ==0.10 , nicify ==1.1.* , parsec ==3.1.* , uuid ==1.3.*
src/Hydrogen/Data.hs view
@@ -1,17 +1,41 @@ module Hydrogen.Data ( emptyNode+ , parseData , loadData , merge , Data+ , isNode+ , isNumber+ , isString+ , isVersion+ , isUUID+ , isBool+ , isDateTime+ , isDate+ , isTime+ , isLink+ , isConstant+ , getNodeMap+ , getNodeList+ , getNumber+ , getString+ , getVersion+ , getUUID+ , getBool+ , getDateTime+ , getDate+ , getTime+ , getLink+ , getConstant ) where -import Hydrogen.Prelude+import Hydrogen.Prelude hiding (isNumber) import Hydrogen.Syntax.Parser import Hydrogen.Data.Parser import Hydrogen.Data.Types -import Hydrogen.Util.Parsec hiding (parse)+import Hydrogen.Parsing hiding (parse) import qualified Data.Map as Map @@ -26,4 +50,111 @@ loadData :: FilePath -> IO (Either SomethingBad Data) loadData fp = (parseData <+< parse fp) <$> readFile fp +isNode, isNumber, isString, isVersion, isUUID, isBool,+ isDateTime, isDate, isTime, isLink, isConstant+ :: Data -> Bool++isNode = \case+ DNode _ _ -> True+ _ -> False++isNumber = \case+ DNumber _ -> True+ _ -> False++isString = \case+ DString _ -> True+ _ -> False++isVersion = \case+ DVersion _ -> True+ _ -> False++isUUID = \case+ DUUID _ -> True+ _ -> False++isBool = \case+ DBool _ -> True+ _ -> False++isDateTime = \case+ DDateTime _ -> True+ _ -> False++isDate = \case+ DDate _ -> True+ _ -> False++isTime = \case+ DTime _ -> True+ _ -> False++isLink = \case+ DLink _ -> True+ _ -> False++isConstant = \case+ DConstant _ -> True+ _ -> False++getNodeMap :: Data -> Map String Data+getNodeMap = \case+ DNode keyValueMap _ -> keyValueMap+ _ -> Map.empty++getNodeList :: Data -> [Data]+getNodeList = \case+ DNode _ xs -> xs+ _ -> []++getNumber :: Monad m => Data -> m Rational+getNumber = \case+ DNumber r -> return r+ _ -> fail "not a DNumber"++getString :: Monad m => Data -> m String+getString = \case+ DString r -> return r+ _ -> fail "not a DString"++getVersion :: Monad m => Data -> m Version+getVersion = \case+ DVersion v -> return v+ _ -> fail "not a DVersion"++getUUID :: Monad m => Data -> m UUID+getUUID = \case+ DUUID u -> return u+ _ -> fail "not a DUUID"++getBool :: Monad m => Data -> m Bool+getBool = \case+ DBool b -> return b+ _ -> fail "not a DBool"++getDateTime :: Monad m => Data -> m ZonedTime+getDateTime = \case+ DDateTime d -> return d+ _ -> fail "not a DDateTime"++getDate :: Monad m => Data -> m Day+getDate = \case+ DDate d -> return d+ _ -> fail "not a DDate"++getTime :: Monad m => Data -> m TimeOfDay+getTime = \case+ DTime d -> return d+ _ -> fail "not a DTime"++getLink :: Monad m => Data -> m String+getLink = \case+ DLink l -> return l+ _ -> fail "not a DLink"++getConstant :: Monad m => Data -> m String+getConstant = \case+ DConstant c -> return c+ _ -> fail "not a DConstant"
src/Hydrogen/Data/Parser.hs view
@@ -5,8 +5,7 @@ import Hydrogen.Syntax.Types -import Hydrogen.Util.Parsec-import Hydrogen.Util.Read+import Hydrogen.Parsing import qualified Data.Map as Map