@@ -3,6 +3,7 @@
3{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE KindSignatures #-}
4{-# LANGUAGE KindSignatures #-}
5{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE OverloadedStrings #-}
6+{-# LANGUAGE PackageImports #-}
6{-# LANGUAGE PolyKinds #-}
7{-# LANGUAGE PolyKinds #-}
7{-# LANGUAGE ScopedTypeVariables #-}
8{-# LANGUAGE ScopedTypeVariables #-}
8{-# LANGUAGE TypeOperators #-}
9{-# LANGUAGE TypeOperators #-}
@@ -15,7 +16,9 @@ import Data.Proxy
15import GHC.Generics
16import GHC.Generics
17import Data.Int
18import Data.Int
19+import "unordered-containers" Data.HashSet (HashSet)
18import Data.Monoid
20import Data.Monoid
19import Data.Scientific
22import Data.Scientific
20import qualified Data.Text as T
23import qualified Data.Text as T
21import qualified Data.Text.Lazy as TL
24import qualified Data.Text.Lazy as TL
@@ -168,6 +171,18 @@ instance ToParamSchema a => ToParamSchema (First a) where toParamSchema _ = to
168instance ToParamSchema a => ToParamSchema (Last a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
171instance ToParamSchema a => ToParamSchema (Last a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
169instance ToParamSchema a => ToParamSchema (Dual a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
172instance ToParamSchema a => ToParamSchema (Dual a) where toParamSchema _ = toParamSchema (Proxy :: Proxy a)
174+instance ToParamSchema a => ToParamSchema [a] where
175+ toParamSchema _ = mempty
176+ & schemaType .~ SwaggerArray
177+ & schemaItems ?~ SwaggerItemsPrimitive (Items Nothing (toParamSchema (Proxy :: Proxy a)))
179+instance ToParamSchema a => ToParamSchema (Set a) where
180+ toParamSchema _ = toParamSchema (Proxy :: Proxy [a])
181+ & schemaUniqueItems ?~ True
183+instance ToParamSchema a => ToParamSchema (HashSet a) where
184+ toParamSchema _ = toParamSchema (Proxy :: Proxy (Set a))
172-- >>> encode $ toParamSchema (Proxy :: Proxy ())
187-- >>> encode $ toParamSchema (Proxy :: Proxy ())
173-- "{\"type\":\"string\",\"enum\":[\"_\"]}"
188-- "{\"type\":\"string\",\"enum\":[\"_\"]}"