on master help sign in
Add some missing comments in Servant.Docs.Internal
714e740Nickolay Kudasov
servant-docs/src/Servant/Docs/Internal.hs+7−5
@@ -387,6 +387,7 @@ class ToSample a b | a -> b where
387 default toSamples :: (Generic a, Generic b, GToSample (Rep a) (Rep b)) => Proxy a -> [(Text, b)]
387 default toSamples :: (Generic a, Generic b, GToSample (Rep a) (Rep b)) => Proxy a -> [(Text, b)]
388 toSamples = defaultSamples
388 toSamples = defaultSamples
389
389
390+-- | Sample input or output (if there is at least one).
390toSample :: forall a b. ToSample a b => Proxy a -> Maybe b
391toSample :: forall a b. ToSample a b => Proxy a -> Maybe b
391toSample _ = snd <$> listToMaybe (toSamples (Proxy :: Proxy a))
392toSample _ = snd <$> listToMaybe (toSamples (Proxy :: Proxy a))
392
393
@@ -398,9 +399,13 @@ noSamples = empty
398singleSample :: a -> [(Text, a)]
399singleSample :: a -> [(Text, a)]
399singleSample x = [("", x)]
400singleSample x = [("", x)]
400
401
402+-- | Default sample Generic-based inputs/outputs.
401defaultSamples :: forall a b. (Generic a, Generic b, GToSample (Rep a) (Rep b)) => Proxy a -> [(Text, b)]
403defaultSamples :: forall a b. (Generic a, Generic b, GToSample (Rep a) (Rep b)) => Proxy a -> [(Text, b)]
402defaultSamples _ = Omega.runOmega $ second to <$> gtoSamples (Proxy :: Proxy (Rep a))
404defaultSamples _ = Omega.runOmega $ second to <$> gtoSamples (Proxy :: Proxy (Rep a))
403
405
406+-- | @'ToSample'@ for Generics.
407+--
408+-- The use of @'Omega'@ allows for more productive sample generation.
404class GToSample t s where
409class GToSample t s where
405 gtoSamples :: proxy t -> Omega.Omega (Text, s x)
410 gtoSamples :: proxy t -> Omega.Omega (Text, s x)
406
411
@@ -959,14 +964,12 @@ instance HasDocs sublayout => HasDocs (Vault :> sublayout) where
959 docsFor Proxy ep =
964 docsFor Proxy ep =
960 docsFor (Proxy :: Proxy sublayout) ep
965 docsFor (Proxy :: Proxy sublayout) ep
961
966
962−-- 'ToSample' instances for simple types
967+-- ToSample instances for simple types
963−
964instance ToSample () ()
968instance ToSample () ()
965instance ToSample Bool Bool
969instance ToSample Bool Bool
966instance ToSample Ordering Ordering
970instance ToSample Ordering Ordering
967
971
968−-- polymorphic 'ToSample' instances
972+-- polymorphic ToSample instances
969−
970instance (ToSample a a, ToSample b b) => ToSample (a, b) (a, b)
973instance (ToSample a a, ToSample b b) => ToSample (a, b) (a, b)
971instance (ToSample a a, ToSample b b, ToSample c c) => ToSample (a, b, c) (a, b, c)
974instance (ToSample a a, ToSample b b, ToSample c c) => ToSample (a, b, c) (a, b, c)
972instance (ToSample a a, ToSample b b, ToSample c c, ToSample d d) => ToSample (a, b, c, d) (a, b, c, d)
975instance (ToSample a a, ToSample b b, ToSample c c, ToSample d d) => ToSample (a, b, c, d) (a, b, c, d)
@@ -977,4 +980,3 @@ instance (ToSample a a, ToSample b b, ToSample c c, ToSample d d, ToSample e e,
977instance ToSample a a => ToSample (Maybe a) (Maybe a)
980instance ToSample a a => ToSample (Maybe a) (Maybe a)
978instance (ToSample a a, ToSample b b) => ToSample (Either a b) (Either a b)
981instance (ToSample a a, ToSample b b) => ToSample (Either a b) (Either a b)
979instance ToSample a a => ToSample [a] [a]
982instance ToSample a a => ToSample [a] [a]
980−