data-object 0.3.0 → 0.3.1
raw patch · 2 files changed
+35/−2 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Object: MissingKey :: String -> ObjectExtractError
+ Data.Object: lookupMapping :: (Show k, Eq k, Failure ObjectExtractError m) => k -> [(k, Object k v)] -> m [(k, Object k v)]
+ Data.Object: lookupObject :: (Show k, Eq k, Failure ObjectExtractError m) => k -> [(k, Object k v)] -> m (Object k v)
+ Data.Object: lookupScalar :: (Show k, Eq k, Failure ObjectExtractError m) => k -> [(k, Object k v)] -> m v
+ Data.Object: lookupSequence :: (Show k, Eq k, Failure ObjectExtractError m) => k -> [(k, Object k v)] -> m [Object k v]
Files
- Data/Object.hs +34/−1
- data-object.cabal +1/−1
Data/Object.hs view
@@ -52,11 +52,16 @@ , fromScalar , fromSequence , fromMapping+ -- * Lookups+ , lookupObject+ , lookupScalar+ , lookupSequence+ , lookupMapping ) where import Control.Arrow import Control.Applicative-import Control.Monad (ap)+import Control.Monad (ap, (<=<)) import Prelude hiding (mapM, sequence) @@ -181,6 +186,7 @@ ExpectedScalar | ExpectedSequence | ExpectedMapping+ | MissingKey String deriving (Typeable, Show) instance Exception ObjectExtractError @@ -205,3 +211,30 @@ -> m [(k, Object k v)] fromMapping (Mapping m) = return m fromMapping _ = failure ExpectedMapping++lookupObject :: (Show k, Eq k, Failure ObjectExtractError m)+ => k+ -> [(k, Object k v)]+ -> m (Object k v)+lookupObject k pairs =+ case lookup k pairs of+ Nothing -> failure $ MissingKey $ show k+ Just v -> return v++lookupScalar :: (Show k, Eq k, Failure ObjectExtractError m)+ => k+ -> [(k, Object k v)]+ -> m v+lookupScalar k = fromScalar <=< lookupObject k++lookupSequence :: (Show k, Eq k, Failure ObjectExtractError m)+ => k+ -> [(k, Object k v)]+ -> m [Object k v]+lookupSequence k = fromSequence <=< lookupObject k++lookupMapping :: (Show k, Eq k, Failure ObjectExtractError m)+ => k+ -> [(k, Object k v)]+ -> m [(k, Object k v)]+lookupMapping k = fromMapping <=< lookupObject k
data-object.cabal view
@@ -1,5 +1,5 @@ name: data-object-version: 0.3.0+version: 0.3.1 license: BSD3 license-file: LICENSE author: Michael Snoyman, Nicolas Pouillard