packages feed

autodocodec-openapi3-0.0.0.0: src/Autodocodec/OpenAPI/DerivingVia.hs

{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}

module Autodocodec.OpenAPI.DerivingVia where

import Autodocodec
import Autodocodec.OpenAPI.Schema
import Data.OpenApi as OpenAPI
import Data.Proxy
import Data.Typeable

-- | An instance for 'Autodocodec' that lets you use 'DerivingVia' to derive 'OpenAPI.ToSchema' if your type has a 'HasCodec' instance.
--
-- > deriving (OpenAPI.ToSchema) via (Autodocodec FooBar)
instance (Typeable a, HasCodec a) => OpenAPI.ToSchema (Autodocodec a) where
  declareNamedSchema (Proxy :: Proxy (Autodocodec a)) = declareNamedSchemaViaCodec (Proxy :: Proxy a)