{-# OPTIONS_GHC -Wno-orphans #-}

-- |
--
-- Module      : Ronn.OptEnvConf
-- Copyright   : (c) 2024 Patrick Brisbin
-- License     : AGPL-3
-- Maintainer  : pbrisbin@gmail.com
-- Stability   : experimental
-- Portability : POSIX
module Ronn.OptEnvConf
  ( optSynopsis
  , optDefinitions
  , envDefinitions
  ) where

import Prelude

import OptEnvConf (Parser)
import Ronn (HasSections (..))
import Ronn.OptEnvConf.Env
import Ronn.OptEnvConf.Opt

instance HasSections Parser where
  getSynopsis :: forall a. Parser a -> Maybe [Part]
getSynopsis = [Part] -> Maybe [Part]
forall a. a -> Maybe a
Just ([Part] -> Maybe [Part])
-> (Parser a -> [Part]) -> Parser a -> Maybe [Part]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser a -> [Part]
forall a. Parser a -> [Part]
optSynopsis
  getOptDefinitions :: forall a. Parser a -> Maybe [Definition]
getOptDefinitions = [Definition] -> Maybe [Definition]
forall a. a -> Maybe a
Just ([Definition] -> Maybe [Definition])
-> (Parser a -> [Definition]) -> Parser a -> Maybe [Definition]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser a -> [Definition]
forall a. Parser a -> [Definition]
optDefinitions
  getEnvDefinitions :: forall a. Parser a -> Maybe [Definition]
getEnvDefinitions = [Definition] -> Maybe [Definition]
forall a. a -> Maybe a
Just ([Definition] -> Maybe [Definition])
-> (Parser a -> [Definition]) -> Parser a -> Maybe [Definition]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser a -> [Definition]
forall a. Parser a -> [Definition]
envDefinitions