packages feed

coco 0.0.0.0 → 0.0.1.0

raw patch · 3 files changed

+31/−8 lines, 3 filesdep +aesondep +foldable1-classes-compatdep ~basedep ~template-haskellPVP ok

version bump matches the API change (PVP)

Dependencies added: aeson, foldable1-classes-compat

Dependency ranges changed: base, template-haskell

API changes (from Hackage documentation)

+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value Data.ByteString.Internal.Type.ByteString
+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value Data.ByteString.Lazy.Internal.ByteString
+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value Data.Text.Internal.Lazy.Text
+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value Data.Text.Internal.Text
+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value Data.UUID.Types.Internal.UUID
+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value GHC.Base.String
+ Coco: instance Coco.MaybeTo Data.Aeson.Types.Internal.Value GHC.Base.Void
+ Coco: instance Coco.MaybeTo Data.ByteString.Internal.Type.ByteString Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.MaybeTo Data.ByteString.Lazy.Internal.ByteString Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.MaybeTo Data.Text.Internal.Lazy.Text Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.MaybeTo Data.Text.Internal.Text Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.MaybeTo Data.UUID.Types.Internal.UUID Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.MaybeTo GHC.Base.String Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.MaybeTo GHC.Base.Void Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.To Data.Aeson.Types.Internal.Value Data.Aeson.Types.Internal.Value
+ Coco: instance Coco.To Data.Aeson.Types.Internal.Value Data.Text.Internal.Lazy.Text
+ Coco: instance Coco.To Data.Aeson.Types.Internal.Value Data.Text.Internal.Text
+ Coco: instance Coco.To Data.Aeson.Types.Internal.Value Data.UUID.Types.Internal.UUID
+ Coco: instance Coco.To Data.Aeson.Types.Internal.Value GHC.Base.Void

Files

Coco.hs view
@@ -6,7 +6,8 @@ module Coco where import qualified Language.Haskell.TH as TH import Data.Void (Void)-import Control.Monad (guard)+import Control.Applicative (empty)+import Control.Monad ((>=>), guard) import Data.Either.HT (maybeRight) import qualified Data.ByteString.Lazy as B import qualified Data.ByteString.Lazy.UTF8 as B@@ -18,6 +19,7 @@ import qualified Data.Text.Encoding as TS import Data.UUID (UUID) import qualified Data.UUID as UUID+import qualified Data.Aeson as Aeson import qualified Coco.TH  {-|@@ -25,7 +27,7 @@  * Both types must be monomorphic. -* If two of @MaybeTo b a@, @MaybeTo c b@ and @MaybeTo c a@ are defined in your module, the third must be available (not necessarily defined) in your module.+* If two of @MaybeTo b a@, @MaybeTo c b@ and @MaybeTo c a@ are defined in your module, the third must be available in (not necessarily defined in) your module.  * For any @a@, @maybeTo a >>= maybeTo@ must be either @maybeTo a@ or @Nothing@. -}@@ -118,3 +120,21 @@ instance To BS.ByteString UUID where to = UUID.toASCIIBytes instance MaybeTo BS.ByteString UUID instance MaybeTo UUID BS.ByteString where maybeTo = UUID.fromASCIIBytes++instance To Aeson.Value TS.Text where to = Aeson.String+instance MaybeTo Aeson.Value TS.Text+instance MaybeTo TS.Text Aeson.Value where+	maybeTo (Aeson.String s) = pure s+	maybeTo _ = empty+instance To Aeson.Value T.Text where to = to . to @TS.Text+instance MaybeTo Aeson.Value T.Text+instance MaybeTo T.Text Aeson.Value where maybeTo = fmap to . maybeTo @TS.Text+instance MaybeTo Aeson.Value String where maybeTo = fmap to . maybeTo @TS.Text+instance MaybeTo String Aeson.Value where maybeTo = fmap to . maybeTo @TS.Text+instance MaybeTo Aeson.Value B.ByteString where maybeTo = fmap to . maybeTo @TS.Text+instance MaybeTo B.ByteString Aeson.Value where maybeTo = fmap to . maybeTo @TS.Text+instance MaybeTo Aeson.Value BS.ByteString where maybeTo = fmap to . maybeTo @TS.Text+instance MaybeTo BS.ByteString Aeson.Value where maybeTo = fmap to . maybeTo @TS.Text+instance To Aeson.Value UUID where to = to . to @TS.Text+instance MaybeTo Aeson.Value UUID+instance MaybeTo UUID Aeson.Value where maybeTo = maybeTo @TS.Text >=> maybeTo
Coco/TH.hs view
@@ -10,6 +10,7 @@ import qualified Data.Text.Lazy as T import qualified Data.Text as TS import Data.UUID (UUID)+import qualified Data.Aeson as Aeson  instanceD :: (Functor t, Foldable1 t) => [TH.Dec] -> t TH.Name -> TH.Dec instanceD = flip@@ -59,4 +60,4 @@ 	. fmap (: [''Void])  nonVoid :: [TH.Name]-nonVoid = [''B.ByteString, ''BS.ByteString, ''T.Text, ''TS.Text, ''String, ''UUID]+nonVoid = [''B.ByteString, ''BS.ByteString, ''T.Text, ''TS.Text, ''String, ''UUID, ''Aeson.Value]
coco.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.8 name:               coco-version:            0.0.0.0+version:            0.0.1.0 build-type:         Simple category:           Conversion author:             Konrad Czech@@ -19,14 +19,16 @@ library  ghc-options: -Wall -Wno-tabs  default-language: GHC2021- default-extensions: OverloadedStrings, QuasiQuotes, TemplateHaskell, TypeFamilyDependencies, DerivingStrategies, UndecidableInstances, DataKinds, CPP, LambdaCase, DefaultSignatures+ default-extensions: TemplateHaskell, DefaultSignatures  build-depends:-  base >= 4.18 && < 4.23,-  template-haskell >= 2.20 && < 2.25,+  base >= 4.17 && < 4.23,+  template-haskell >= 2.19 && < 2.25,   utility-ht >= 0.0.16 && < 0.1,   bytestring >= 0.11.3 && < 0.13,   utf8-string >= 1.0.1.1 && < 1.1,   text >= 1.2.5.0 && < 2.2,-  uuid >= 1.3.15 && < 1.4+  uuid >= 1.3.15 && < 1.4,+  aeson >= 2.1 && < 2.3,+  foldable1-classes-compat >= 0.1 && < 0.2  exposed-modules: Coco  other-modules: Coco.TH