module Nbparts.Types.Mime ( UnembeddedMimeAttachments (..), UnembeddedMimeBundle (..), UnembeddedMimeData (..), ) where import Data.Aeson (Options (constructorTagModifier, sumEncoding)) import Data.Aeson qualified as Aeson import Data.Map (Map) import Data.Text (Text) import GHC.Generics (Generic) newtype UnembeddedMimeAttachments = UnembeddedMimeAttachments (Map Text UnembeddedMimeBundle) deriving ((forall x. UnembeddedMimeAttachments -> Rep UnembeddedMimeAttachments x) -> (forall x. Rep UnembeddedMimeAttachments x -> UnembeddedMimeAttachments) -> Generic UnembeddedMimeAttachments forall x. Rep UnembeddedMimeAttachments x -> UnembeddedMimeAttachments forall x. UnembeddedMimeAttachments -> Rep UnembeddedMimeAttachments x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. UnembeddedMimeAttachments -> Rep UnembeddedMimeAttachments x from :: forall x. UnembeddedMimeAttachments -> Rep UnembeddedMimeAttachments x $cto :: forall x. Rep UnembeddedMimeAttachments x -> UnembeddedMimeAttachments to :: forall x. Rep UnembeddedMimeAttachments x -> UnembeddedMimeAttachments Generic, Int -> UnembeddedMimeAttachments -> ShowS [UnembeddedMimeAttachments] -> ShowS UnembeddedMimeAttachments -> String (Int -> UnembeddedMimeAttachments -> ShowS) -> (UnembeddedMimeAttachments -> String) -> ([UnembeddedMimeAttachments] -> ShowS) -> Show UnembeddedMimeAttachments forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> UnembeddedMimeAttachments -> ShowS showsPrec :: Int -> UnembeddedMimeAttachments -> ShowS $cshow :: UnembeddedMimeAttachments -> String show :: UnembeddedMimeAttachments -> String $cshowList :: [UnembeddedMimeAttachments] -> ShowS showList :: [UnembeddedMimeAttachments] -> ShowS Show, UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool) -> (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool) -> Eq UnembeddedMimeAttachments forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool == :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool $c/= :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool /= :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool Eq, Eq UnembeddedMimeAttachments Eq UnembeddedMimeAttachments => (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Ordering) -> (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool) -> (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool) -> (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool) -> (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool) -> (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> UnembeddedMimeAttachments) -> (UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> UnembeddedMimeAttachments) -> Ord UnembeddedMimeAttachments UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Ordering UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> UnembeddedMimeAttachments forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Ordering compare :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Ordering $c< :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool < :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool $c<= :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool <= :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool $c> :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool > :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool $c>= :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool >= :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> Bool $cmax :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> UnembeddedMimeAttachments max :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> UnembeddedMimeAttachments $cmin :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> UnembeddedMimeAttachments min :: UnembeddedMimeAttachments -> UnembeddedMimeAttachments -> UnembeddedMimeAttachments Ord) newtype UnembeddedMimeBundle = UnembeddedMimeBundle (Map Text UnembeddedMimeData) deriving ((forall x. UnembeddedMimeBundle -> Rep UnembeddedMimeBundle x) -> (forall x. Rep UnembeddedMimeBundle x -> UnembeddedMimeBundle) -> Generic UnembeddedMimeBundle forall x. Rep UnembeddedMimeBundle x -> UnembeddedMimeBundle forall x. UnembeddedMimeBundle -> Rep UnembeddedMimeBundle x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. UnembeddedMimeBundle -> Rep UnembeddedMimeBundle x from :: forall x. UnembeddedMimeBundle -> Rep UnembeddedMimeBundle x $cto :: forall x. Rep UnembeddedMimeBundle x -> UnembeddedMimeBundle to :: forall x. Rep UnembeddedMimeBundle x -> UnembeddedMimeBundle Generic, Int -> UnembeddedMimeBundle -> ShowS [UnembeddedMimeBundle] -> ShowS UnembeddedMimeBundle -> String (Int -> UnembeddedMimeBundle -> ShowS) -> (UnembeddedMimeBundle -> String) -> ([UnembeddedMimeBundle] -> ShowS) -> Show UnembeddedMimeBundle forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> UnembeddedMimeBundle -> ShowS showsPrec :: Int -> UnembeddedMimeBundle -> ShowS $cshow :: UnembeddedMimeBundle -> String show :: UnembeddedMimeBundle -> String $cshowList :: [UnembeddedMimeBundle] -> ShowS showList :: [UnembeddedMimeBundle] -> ShowS Show, UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool (UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool) -> (UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool) -> Eq UnembeddedMimeBundle forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool == :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool $c/= :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool /= :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool Eq, Eq UnembeddedMimeBundle Eq UnembeddedMimeBundle => (UnembeddedMimeBundle -> UnembeddedMimeBundle -> Ordering) -> (UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool) -> (UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool) -> (UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool) -> (UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool) -> (UnembeddedMimeBundle -> UnembeddedMimeBundle -> UnembeddedMimeBundle) -> (UnembeddedMimeBundle -> UnembeddedMimeBundle -> UnembeddedMimeBundle) -> Ord UnembeddedMimeBundle UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool UnembeddedMimeBundle -> UnembeddedMimeBundle -> Ordering UnembeddedMimeBundle -> UnembeddedMimeBundle -> UnembeddedMimeBundle forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Ordering compare :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Ordering $c< :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool < :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool $c<= :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool <= :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool $c> :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool > :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool $c>= :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool >= :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> Bool $cmax :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> UnembeddedMimeBundle max :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> UnembeddedMimeBundle $cmin :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> UnembeddedMimeBundle min :: UnembeddedMimeBundle -> UnembeddedMimeBundle -> UnembeddedMimeBundle Ord) data UnembeddedMimeData = BinaryData FilePath | TextualData Text | JsonData Aeson.Value deriving ((forall x. UnembeddedMimeData -> Rep UnembeddedMimeData x) -> (forall x. Rep UnembeddedMimeData x -> UnembeddedMimeData) -> Generic UnembeddedMimeData forall x. Rep UnembeddedMimeData x -> UnembeddedMimeData forall x. UnembeddedMimeData -> Rep UnembeddedMimeData x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. UnembeddedMimeData -> Rep UnembeddedMimeData x from :: forall x. UnembeddedMimeData -> Rep UnembeddedMimeData x $cto :: forall x. Rep UnembeddedMimeData x -> UnembeddedMimeData to :: forall x. Rep UnembeddedMimeData x -> UnembeddedMimeData Generic, Int -> UnembeddedMimeData -> ShowS [UnembeddedMimeData] -> ShowS UnembeddedMimeData -> String (Int -> UnembeddedMimeData -> ShowS) -> (UnembeddedMimeData -> String) -> ([UnembeddedMimeData] -> ShowS) -> Show UnembeddedMimeData forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> UnembeddedMimeData -> ShowS showsPrec :: Int -> UnembeddedMimeData -> ShowS $cshow :: UnembeddedMimeData -> String show :: UnembeddedMimeData -> String $cshowList :: [UnembeddedMimeData] -> ShowS showList :: [UnembeddedMimeData] -> ShowS Show, UnembeddedMimeData -> UnembeddedMimeData -> Bool (UnembeddedMimeData -> UnembeddedMimeData -> Bool) -> (UnembeddedMimeData -> UnembeddedMimeData -> Bool) -> Eq UnembeddedMimeData forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: UnembeddedMimeData -> UnembeddedMimeData -> Bool == :: UnembeddedMimeData -> UnembeddedMimeData -> Bool $c/= :: UnembeddedMimeData -> UnembeddedMimeData -> Bool /= :: UnembeddedMimeData -> UnembeddedMimeData -> Bool Eq, Eq UnembeddedMimeData Eq UnembeddedMimeData => (UnembeddedMimeData -> UnembeddedMimeData -> Ordering) -> (UnembeddedMimeData -> UnembeddedMimeData -> Bool) -> (UnembeddedMimeData -> UnembeddedMimeData -> Bool) -> (UnembeddedMimeData -> UnembeddedMimeData -> Bool) -> (UnembeddedMimeData -> UnembeddedMimeData -> Bool) -> (UnembeddedMimeData -> UnembeddedMimeData -> UnembeddedMimeData) -> (UnembeddedMimeData -> UnembeddedMimeData -> UnembeddedMimeData) -> Ord UnembeddedMimeData UnembeddedMimeData -> UnembeddedMimeData -> Bool UnembeddedMimeData -> UnembeddedMimeData -> Ordering UnembeddedMimeData -> UnembeddedMimeData -> UnembeddedMimeData forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: UnembeddedMimeData -> UnembeddedMimeData -> Ordering compare :: UnembeddedMimeData -> UnembeddedMimeData -> Ordering $c< :: UnembeddedMimeData -> UnembeddedMimeData -> Bool < :: UnembeddedMimeData -> UnembeddedMimeData -> Bool $c<= :: UnembeddedMimeData -> UnembeddedMimeData -> Bool <= :: UnembeddedMimeData -> UnembeddedMimeData -> Bool $c> :: UnembeddedMimeData -> UnembeddedMimeData -> Bool > :: UnembeddedMimeData -> UnembeddedMimeData -> Bool $c>= :: UnembeddedMimeData -> UnembeddedMimeData -> Bool >= :: UnembeddedMimeData -> UnembeddedMimeData -> Bool $cmax :: UnembeddedMimeData -> UnembeddedMimeData -> UnembeddedMimeData max :: UnembeddedMimeData -> UnembeddedMimeData -> UnembeddedMimeData $cmin :: UnembeddedMimeData -> UnembeddedMimeData -> UnembeddedMimeData min :: UnembeddedMimeData -> UnembeddedMimeData -> UnembeddedMimeData Ord) instance Aeson.ToJSON UnembeddedMimeAttachments instance Aeson.FromJSON UnembeddedMimeAttachments instance Aeson.ToJSON UnembeddedMimeBundle instance Aeson.FromJSON UnembeddedMimeBundle instance Aeson.ToJSON UnembeddedMimeData where toJSON :: UnembeddedMimeData -> Value toJSON = Options -> UnembeddedMimeData -> Value forall a. (Generic a, GToJSON' Value Zero (Rep a)) => Options -> a -> Value Aeson.genericToJSON Options jsonOptions instance Aeson.FromJSON UnembeddedMimeData where parseJSON :: Value -> Parser UnembeddedMimeData parseJSON = Options -> Value -> Parser UnembeddedMimeData forall a. (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a Aeson.genericParseJSON Options jsonOptions jsonOptions :: Aeson.Options jsonOptions :: Options jsonOptions = Options Aeson.defaultOptions { sumEncoding = Aeson.TaggedObject { tagFieldName = "type", contentsFieldName = "value" }, constructorTagModifier = \case String "BinaryData" -> String "binary" String "TextualData" -> String "text" String "JsonData" -> String "json" String other -> String other }