on master help sign in
Add samples helper to define samples without documentation
f96915eNickolay Kudasov
servant-docs/src/Servant/Docs.hs+1
@@ -151,6 +151,7 @@ module Servant.Docs
151 , toSample
151 , toSample
152 , noSamples
152 , noSamples
153 , singleSample
153 , singleSample
154+ , samples
154 , sampleByteString
155 , sampleByteString
155 , sampleByteStrings
156 , sampleByteStrings
156 , ToParam(..)
157 , ToParam(..)
servant-docs/src/Servant/Docs/Internal.hs+4
@@ -399,6 +399,10 @@ noSamples = empty
399singleSample :: a -> [(Text, a)]
399singleSample :: a -> [(Text, a)]
400singleSample x = [("", x)]
400singleSample x = [("", x)]
401
401
402+-- | Samples without documentation.
403+samples :: [a] -> [(Text, a)]
404+samples = map ("",)
405+
402-- | Default sample Generic-based inputs/outputs.
406-- | Default sample Generic-based inputs/outputs.
403defaultSamples :: forall a b. (Generic a, Generic b, GToSample (Rep a) (Rep b)) => Proxy a -> [(Text, b)]
407defaultSamples :: forall a b. (Generic a, Generic b, GToSample (Rep a) (Rep b)) => Proxy a -> [(Text, b)]
404defaultSamples _ = Omega.runOmega $ second to <$> gtoSamples (Proxy :: Proxy (Rep a))
408defaultSamples _ = Omega.runOmega $ second to <$> gtoSamples (Proxy :: Proxy (Rep a))
servant-docs/test/Servant/DocsSpec.hs+1−2
@@ -4,7 +4,6 @@
4{-# LANGUAGE FlexibleContexts #-}
4{-# LANGUAGE FlexibleContexts #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
6{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE OverloadedStrings #-}
7−{-# LANGUAGE TupleSections #-}
8{-# LANGUAGE TypeOperators #-}
7{-# LANGUAGE TypeOperators #-}
9{-# LANGUAGE TypeSynonymInstances #-}
8{-# LANGUAGE TypeSynonymInstances #-}
10{-# OPTIONS_GHC -fno-warn-orphans #-}
9{-# OPTIONS_GHC -fno-warn-orphans #-}
@@ -95,7 +94,7 @@ instance ToSample Datatype1 Datatype1 where
95 toSamples _ = singleSample $ Datatype1 "field 1" 13
94 toSamples _ = singleSample $ Datatype1 "field 1" 13
96
95
97instance ToSample Char Char where
96instance ToSample Char Char where
98− toSamples _ = map ("",) ['a'..'z']
97+ toSamples _ = samples ['a'..'z']
99
98
100instance ToSample Int Int where
99instance ToSample Int Int where
101 toSamples _ = singleSample 17
100 toSamples _ = singleSample 17