packages feed

mu-rpc 0.5.0.1 → 0.5.0.2

raw patch · 3 files changed

+63/−51 lines, 3 filesdep ~aesondep ~template-haskellPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: aeson, template-haskell

API changes (from Hackage documentation)

- Mu.Server: instance Mu.Server.ToNamedList () '[]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n h) '[ '(n, h)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2) '[ '(n1, h1), '(n2, h2)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2, Mu.Server.Named n3 h3) '[ '(n1, h1), '(n2, h2), '(n3, h3)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2, Mu.Server.Named n3 h3, Mu.Server.Named n4 h4) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2, Mu.Server.Named n3 h3, Mu.Server.Named n4 h4, Mu.Server.Named n5 h5) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2, Mu.Server.Named n3 h3, Mu.Server.Named n4 h4, Mu.Server.Named n5 h5, Mu.Server.Named n6 h6) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2, Mu.Server.Named n3 h3, Mu.Server.Named n4 h4, Mu.Server.Named n5 h5, Mu.Server.Named n6 h6, Mu.Server.Named n7 h7) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2, Mu.Server.Named n3 h3, Mu.Server.Named n4 h4, Mu.Server.Named n5 h5, Mu.Server.Named n6 h6, Mu.Server.Named n7 h7, Mu.Server.Named n8 h8) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.Named n1 h1, Mu.Server.Named n2 h2, Mu.Server.Named n3 h3, Mu.Server.Named n4 h4, Mu.Server.Named n5 h5, Mu.Server.Named n6 h6, Mu.Server.Named n7 h7, Mu.Server.Named n8 h8, Mu.Server.Named n9 h9) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8), '(n9, h9)]
- Mu.Server: instance Mu.Server.ToNamedList (Mu.Server.NamedList nl) nl
+ Mu.Named: [:|:] :: Named n h -> NamedList hs -> NamedList ('(n, h) : hs)
+ Mu.Named: [N0] :: NamedList '[]
+ Mu.Named: [Named] :: forall n h. h -> Named n h
+ Mu.Named: class ToNamedList p nl | p -> nl
+ Mu.Named: data Named n h
+ Mu.Named: data NamedList (hs :: [(Symbol, *)])
+ Mu.Named: infixr 4 :|:
+ Mu.Named: instance Mu.Named.ToNamedList () '[]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n h) '[ '(n, h)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2) '[ '(n1, h1), '(n2, h2)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2, Mu.Named.Named n3 h3) '[ '(n1, h1), '(n2, h2), '(n3, h3)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2, Mu.Named.Named n3 h3, Mu.Named.Named n4 h4) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2, Mu.Named.Named n3 h3, Mu.Named.Named n4 h4, Mu.Named.Named n5 h5) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2, Mu.Named.Named n3 h3, Mu.Named.Named n4 h4, Mu.Named.Named n5 h5, Mu.Named.Named n6 h6) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2, Mu.Named.Named n3 h3, Mu.Named.Named n4 h4, Mu.Named.Named n5 h5, Mu.Named.Named n6 h6, Mu.Named.Named n7 h7) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2, Mu.Named.Named n3 h3, Mu.Named.Named n4 h4, Mu.Named.Named n5 h5, Mu.Named.Named n6 h6, Mu.Named.Named n7 h7, Mu.Named.Named n8 h8) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.Named n1 h1, Mu.Named.Named n2 h2, Mu.Named.Named n3 h3, Mu.Named.Named n4 h4, Mu.Named.Named n5 h5, Mu.Named.Named n6 h6, Mu.Named.Named n7 h7, Mu.Named.Named n8 h8, Mu.Named.Named n9 h9) '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8), '(n9, h9)]
+ Mu.Named: instance Mu.Named.ToNamedList (Mu.Named.NamedList nl) nl
+ Mu.Named: toNamedList :: ToNamedList p nl => p -> NamedList nl

Files

mu-rpc.cabal view
@@ -1,5 +1,5 @@ name:               mu-rpc-version:            0.5.0.1+version:            0.5.0.2 synopsis:           Protocol-independent declaration of services and servers. description:   Protocol-independent declaration of services and servers for mu-haskell.@@ -22,20 +22,21 @@  library   exposed-modules:+    Mu.Named     Mu.Rpc     Mu.Rpc.Annotations     Mu.Rpc.Examples     Mu.Server    build-depends:-      aeson+      aeson             >=1.4   && <2     , base              >=4.12  && <5     , conduit           >=1.3.2 && <1.4     , http-types        >=0.12  && <0.13     , mtl               >=2.2   && <2.3     , mu-schema         >=0.3   && <0.4     , sop-core          >=0.5   && <0.6-    , template-haskell  >=2.14  && <2.17+    , template-haskell  >=2.14  && <2.18     , text              >=1.2   && <1.3     , wai               >=3.2   && <4 
+ src/Mu/Named.hs view
@@ -0,0 +1,57 @@+{-# language DataKinds              #-}+{-# language FlexibleInstances      #-}+{-# language FunctionalDependencies #-}+{-# language GADTs                  #-}+{-# language PolyKinds              #-}+{-# language RankNTypes             #-}+{-# language TypeOperators          #-}+module Mu.Named where++import           GHC.TypeLits++-- | A value tagged with a type-level name.+data Named n h where+  Named :: forall n h. h -> Named n h++infixr 4 :|:+-- | Heterogeneous list in which each element+--   is tagged with a type-level name.+data NamedList (hs :: [(Symbol, *)]) where+  N0    :: NamedList '[]+  (:|:) :: Named n h -> NamedList hs+        -> NamedList ('(n, h) ': hs)++-- | Used to turn tuples into 'NamedList's.+class ToNamedList p nl | p -> nl where+  toNamedList :: p -> NamedList nl++instance ToNamedList (NamedList nl) nl where+  toNamedList = id+instance ToNamedList () '[] where+  toNamedList _ = N0+instance ToNamedList (Named n h) '[ '(n, h) ] where+  toNamedList n = n :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2)+                     '[ '(n1, h1), '(n2, h2) ] where+  toNamedList (n1, n2) = n1 :|: n2 :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3)+                     '[ '(n1, h1), '(n2, h2), '(n3, h3) ] where+  toNamedList (n1, n2, n3) = n1 :|: n2 :|: n3 :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4)+                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4) ] where+  toNamedList (n1, n2, n3, n4) = n1 :|: n2 :|: n3 :|: n4 :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5)+                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5) ] where+  toNamedList (n1, n2, n3, n4, n5) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6)+                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6) ] where+  toNamedList (n1, n2, n3, n4, n5, n6) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6, Named n7 h7)+                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7) ] where+  toNamedList (n1, n2, n3, n4, n5, n6, n7) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: n7 :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6, Named n7 h7, Named n8 h8)+                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8) ] where+  toNamedList (n1, n2, n3, n4, n5, n6, n7, n8) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: n7 :|: n8 :|: N0+instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6, Named n7 h7, Named n8 h8, Named n9 h9)+                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8), '(n9, h9) ] where+  toNamedList (n1, n2, n3, n4, n5, n6, n7, n8, n9) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: n7 :|: n8 :|: n9 :|: N0
src/Mu/Server.hs view
@@ -79,6 +79,7 @@ import           Data.Typeable import           GHC.TypeLits +import           Mu.Named import           Mu.Rpc import           Mu.Schema @@ -130,7 +131,7 @@   | Unauthenticated   | Internal   | Invalid-  | NotFound+  | NotFound   deriving (Eq, Show)  -- | Defines a mapping between outcome of@@ -361,53 +362,6 @@   :: (ToNamedList p nl, ToServices chn info ss m hs nl)   => p -> ServerT chn info ('Package pname ss) m hs resolver nl = Services $ toServices $ toNamedList nl---- | A value tagged with a type-level name.-data Named n h where-  Named :: forall n h. h -> Named n h--infixr 4 :|:--- | Heterogeneous list in which each element---   is tagged with a type-level name.-data NamedList (hs :: [(Symbol, *)]) where-  N0    :: NamedList '[]-  (:|:) :: Named n h -> NamedList hs-        -> NamedList ('(n, h) ': hs)---- | Used to turn tuples into 'NamedList's.-class ToNamedList p nl | p -> nl where-  toNamedList :: p -> NamedList nl--instance ToNamedList (NamedList nl) nl where-  toNamedList = id-instance ToNamedList () '[] where-  toNamedList _ = N0-instance ToNamedList (Named n h) '[ '(n, h) ] where-  toNamedList n = n :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2)-                     '[ '(n1, h1), '(n2, h2) ] where-  toNamedList (n1, n2) = n1 :|: n2 :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3)-                     '[ '(n1, h1), '(n2, h2), '(n3, h3) ] where-  toNamedList (n1, n2, n3) = n1 :|: n2 :|: n3 :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4)-                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4) ] where-  toNamedList (n1, n2, n3, n4) = n1 :|: n2 :|: n3 :|: n4 :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5)-                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5) ] where-  toNamedList (n1, n2, n3, n4, n5) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6)-                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6) ] where-  toNamedList (n1, n2, n3, n4, n5, n6) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6, Named n7 h7)-                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7) ] where-  toNamedList (n1, n2, n3, n4, n5, n6, n7) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: n7 :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6, Named n7 h7, Named n8 h8)-                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8) ] where-  toNamedList (n1, n2, n3, n4, n5, n6, n7, n8) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: n7 :|: n8 :|: N0-instance ToNamedList (Named n1 h1, Named n2 h2, Named n3 h3, Named n4 h4, Named n5 h5, Named n6 h6, Named n7 h7, Named n8 h8, Named n9 h9)-                     '[ '(n1, h1), '(n2, h2), '(n3, h3), '(n4, h4), '(n5, h5), '(n6, h6), '(n7, h7), '(n8, h8), '(n9, h9) ] where-  toNamedList (n1, n2, n3, n4, n5, n6, n7, n8, n9) = n1 :|: n2 :|: n3 :|: n4 :|: n5 :|: n6 :|: n7 :|: n8 :|: n9 :|: N0  class ToHandlers chn info inh ms m hs nl | chn inh ms m nl -> hs where   toHandlers :: NamedList nl