{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Autodocodec.Swagger.DerivingVia where
import Autodocodec (Autodocodec, HasCodec)
import Autodocodec.Swagger.Schema (declareNamedSchemaViaCodec)
import Data.Proxy (Proxy (..))
import qualified Data.Swagger as Swagger
instance (HasCodec a) => Swagger.ToSchema (Autodocodec a) where
declareNamedSchema :: Proxy (Autodocodec a) -> Declare (Definitions Schema) NamedSchema
declareNamedSchema = let schema :: Declare (Definitions Schema) NamedSchema
schema = Proxy a -> Declare (Definitions Schema) NamedSchema
forall value.
HasCodec value =>
Proxy value -> Declare (Definitions Schema) NamedSchema
declareNamedSchemaViaCodec (Proxy a
forall {k} (t :: k). Proxy t
Proxy :: Proxy a) in Declare (Definitions Schema) NamedSchema
-> Proxy (Autodocodec a)
-> Declare (Definitions Schema) NamedSchema
forall a b. a -> b -> a
const Declare (Definitions Schema) NamedSchema
schema