hw-prelude 0.0.0.1 → 0.0.0.2
raw patch · 6 files changed
+117/−16 lines, 6 filesdep +aesondep +generic-lensdep +microlensPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: aeson, generic-lens, microlens
API changes (from Hackage documentation)
- HaskellWorks.Error.Types: [$sel:message:GenericError] :: GenericError -> Text
- HaskellWorks.Error.Types: [$sel:message:TimedOut] :: TimedOut -> Text
- HaskellWorks.Error.Types: instance GHC.Classes.Eq HaskellWorks.Error.Types.GenericError
- HaskellWorks.Error.Types: instance GHC.Classes.Eq HaskellWorks.Error.Types.TimedOut
- HaskellWorks.Error.Types: instance GHC.Generics.Generic HaskellWorks.Error.Types.GenericError
- HaskellWorks.Error.Types: instance GHC.Generics.Generic HaskellWorks.Error.Types.TimedOut
- HaskellWorks.Error.Types: instance GHC.Show.Show HaskellWorks.Error.Types.GenericError
- HaskellWorks.Error.Types: instance GHC.Show.Show HaskellWorks.Error.Types.TimedOut
+ HaskellWorks.Error.Types: RenderedError :: Text -> Value -> RenderedError
+ HaskellWorks.Error.Types: class ToRenderedError a
+ HaskellWorks.Error.Types: data RenderedError
+ HaskellWorks.Error.Types: toRenderedError :: ToRenderedError a => a -> RenderedError
+ HaskellWorks.Error.Types.All: GenericError :: Text -> GenericError
+ HaskellWorks.Error.Types.All: RenderedError :: Text -> Value -> RenderedError
+ HaskellWorks.Error.Types.All: TimedOut :: Text -> TimedOut
+ HaskellWorks.Error.Types.All: [$sel:error:RenderedError] :: RenderedError -> Text
+ HaskellWorks.Error.Types.All: [$sel:message:GenericError] :: GenericError -> Text
+ HaskellWorks.Error.Types.All: [$sel:message:TimedOut] :: TimedOut -> Text
+ HaskellWorks.Error.Types.All: [$sel:payload:RenderedError] :: RenderedError -> Value
+ HaskellWorks.Error.Types.All: class ToRenderedError a
+ HaskellWorks.Error.Types.All: data RenderedError
+ HaskellWorks.Error.Types.All: newtype GenericError
+ HaskellWorks.Error.Types.All: newtype TimedOut
+ HaskellWorks.Error.Types.All: toRenderedError :: ToRenderedError a => a -> RenderedError
+ HaskellWorks.Error.Types.GenericError: GenericError :: Text -> GenericError
+ HaskellWorks.Error.Types.GenericError: [$sel:message:GenericError] :: GenericError -> Text
+ HaskellWorks.Error.Types.GenericError: instance GHC.Classes.Eq HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: instance GHC.Generics.Generic HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: instance GHC.Show.Show HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: instance HaskellWorks.Error.Types.RenderedError.ToRenderedError HaskellWorks.Error.Types.GenericError.GenericError
+ HaskellWorks.Error.Types.GenericError: newtype GenericError
+ HaskellWorks.Error.Types.RenderedError: RenderedError :: Text -> Value -> RenderedError
+ HaskellWorks.Error.Types.RenderedError: [$sel:error:RenderedError] :: RenderedError -> Text
+ HaskellWorks.Error.Types.RenderedError: [$sel:payload:RenderedError] :: RenderedError -> Value
+ HaskellWorks.Error.Types.RenderedError: class ToRenderedError a
+ HaskellWorks.Error.Types.RenderedError: data RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance Data.Aeson.Types.ToJSON.ToJSON HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance GHC.Classes.Eq HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance GHC.Generics.Generic HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance GHC.Show.Show HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: instance HaskellWorks.Error.Types.RenderedError.ToRenderedError HaskellWorks.Error.Types.RenderedError.RenderedError
+ HaskellWorks.Error.Types.RenderedError: toRenderedError :: ToRenderedError a => a -> RenderedError
+ HaskellWorks.Error.Types.TimedOut: TimedOut :: Text -> TimedOut
+ HaskellWorks.Error.Types.TimedOut: [$sel:message:TimedOut] :: TimedOut -> Text
+ HaskellWorks.Error.Types.TimedOut: instance GHC.Classes.Eq HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: instance GHC.Generics.Generic HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: instance GHC.Show.Show HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: instance HaskellWorks.Error.Types.RenderedError.ToRenderedError HaskellWorks.Error.Types.TimedOut.TimedOut
+ HaskellWorks.Error.Types.TimedOut: newtype TimedOut
Files
- hw-prelude.cabal +11/−1
- src/HaskellWorks/Error/Types.hs +8/−15
- src/HaskellWorks/Error/Types/All.hs +14/−0
- src/HaskellWorks/Error/Types/GenericError.hs +26/−0
- src/HaskellWorks/Error/Types/RenderedError.hs +32/−0
- src/HaskellWorks/Error/Types/TimedOut.hs +26/−0
hw-prelude.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: hw-prelude-version: 0.0.0.1+version: 0.0.0.2 synopsis: Opinionated prelude library description: Opinionated prelude library. license: Apache-2.0@@ -19,11 +19,14 @@ common base { build-depends: base >= 4.13 && < 5 } +common aeson { build-depends: aeson < 2.3 } common async { build-depends: async < 2.3 } common bytestring { build-depends: bytestring < 0.13 } common contravariant { build-depends: contravariant < 1.6 } common directory { build-depends: directory < 1.4 } common filepath { build-depends: filepath < 1.6 }+common generic-lens { build-depends: generic-lens < 2.3 }+common microlens { build-depends: microlens < 0.5 } common network { build-depends: network < 3.3 } common process { build-depends: process < 1.7 } common resourcet { build-depends: resourcet < 1.4 }@@ -63,11 +66,14 @@ library import: base, project-config,+ aeson, async, bytestring, contravariant, directory, filepath,+ generic-lens,+ microlens, network, process, resourcet,@@ -82,6 +88,10 @@ HaskellWorks.Data.String HaskellWorks.Error HaskellWorks.Error.Types+ HaskellWorks.Error.Types.All+ HaskellWorks.Error.Types.GenericError+ HaskellWorks.Error.Types.RenderedError+ HaskellWorks.Error.Types.TimedOut HaskellWorks.IO.Network.NamedPipe HaskellWorks.IO.Network.Port HaskellWorks.IO.Network.Socket
src/HaskellWorks/Error/Types.hs view
@@ -1,18 +1,11 @@-{-# LANGUAGE DeriveGeneric #-}- module HaskellWorks.Error.Types- ( GenericError(..),- TimedOut(..),- ) where--import HaskellWorks.Prelude+ ( -- * Error types+ GenericError(GenericError),+ RenderedError(RenderedError),+ TimedOut(TimedOut), -newtype GenericError = GenericError- { message :: Text- }- deriving (Generic, Eq, Show)+ -- * Type classes+ ToRenderedError(..),+ ) where -newtype TimedOut = TimedOut- { message :: Text- }- deriving (Generic, Eq, Show)+import HaskellWorks.Error.Types.All
+ src/HaskellWorks/Error/Types/All.hs view
@@ -0,0 +1,14 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances #-}++module HaskellWorks.Error.Types.All (+ GenericError (..),+ RenderedError (..),+ TimedOut(..),++ ToRenderedError (..),+) where++import HaskellWorks.Error.Types.GenericError+import HaskellWorks.Error.Types.RenderedError+import HaskellWorks.Error.Types.TimedOut
+ src/HaskellWorks/Error/Types/GenericError.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances #-}++module HaskellWorks.Error.Types.GenericError (+ GenericError (..),+) where++import Data.Aeson+import Data.Generics.Product.Any+import HaskellWorks.Error.Types.RenderedError+import Lens.Micro++import HaskellWorks.Prelude++newtype GenericError = GenericError+ { message :: Text+ }+ deriving (Eq, Generic, Show)++instance ToRenderedError GenericError where+ toRenderedError e =+ RenderedError+ { error = "GenericError"+ , payload = toJSON $ e ^. the @"message"+ }
+ src/HaskellWorks/Error/Types/RenderedError.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances #-}++module HaskellWorks.Error.Types.RenderedError (+ RenderedError (..),++ ToRenderedError (..),+) where++import Data.Aeson++import HaskellWorks.Prelude++data RenderedError = RenderedError+ { error :: Text+ , payload :: Value+ }+ deriving (Eq, Generic, Show)++instance ToJSON RenderedError where+ toJSON e =+ object+ [ "error" .= error e+ , "payload" .= payload e+ ]++class ToRenderedError a where+ toRenderedError :: a -> RenderedError++instance ToRenderedError RenderedError where+ toRenderedError = id
+ src/HaskellWorks/Error/Types/TimedOut.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE TypeSynonymInstances #-}++module HaskellWorks.Error.Types.TimedOut (+ TimedOut (..),+) where++import Data.Aeson+import Data.Generics.Product.Any+import HaskellWorks.Error.Types.RenderedError+import Lens.Micro++import HaskellWorks.Prelude++newtype TimedOut = TimedOut+ { message :: Text+ }+ deriving (Eq, Generic, Show)++instance ToRenderedError TimedOut where+ toRenderedError e =+ RenderedError+ { error = "TimedOut"+ , payload = toJSON $ e ^. the @"message"+ }