mdoc-0.3.2.0: src/Mdoc/Data/Optionality.hs
-- |
--
-- Module : Mdoc.Data.Optionality
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.Data.Optionality
( Optionality (..)
) where
import Mdoc.Prelude
import Data.Aeson (object, (.=))
data Optionality
= Optional
| Required
| Defaulted String
deriving stock (Eq, Ord, Show)
instance ToJSON Optionality where
toJSON = \case
Optional -> object ["required" .= False]
Required -> object ["required" .= True]
Defaulted s -> object ["required" .= False, "default" .= s]