module Hix.Managed.Data.Envs where import Data.Aeson (FromJSON) import Distribution.Pretty (Pretty (pretty)) import GHC.Exts (IsList) import Hix.Class.EncodeNix (EncodeNix) import Hix.Class.Map (LookupMonoid, NMap, nPretty1) import Hix.Data.EnvName (EnvName) newtype Envs a = Envs (Map EnvName a) deriving stock (Envs a -> Envs a -> Bool (Envs a -> Envs a -> Bool) -> (Envs a -> Envs a -> Bool) -> Eq (Envs a) forall a. Eq a => Envs a -> Envs a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => Envs a -> Envs a -> Bool == :: Envs a -> Envs a -> Bool $c/= :: forall a. Eq a => Envs a -> Envs a -> Bool /= :: Envs a -> Envs a -> Bool Eq, Int -> Envs a -> ShowS [Envs a] -> ShowS Envs a -> String (Int -> Envs a -> ShowS) -> (Envs a -> String) -> ([Envs a] -> ShowS) -> Show (Envs a) forall a. Show a => Int -> Envs a -> ShowS forall a. Show a => [Envs a] -> ShowS forall a. Show a => Envs a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> Envs a -> ShowS showsPrec :: Int -> Envs a -> ShowS $cshow :: forall a. Show a => Envs a -> String show :: Envs a -> String $cshowList :: forall a. Show a => [Envs a] -> ShowS showList :: [Envs a] -> ShowS Show, (forall x. Envs a -> Rep (Envs a) x) -> (forall x. Rep (Envs a) x -> Envs a) -> Generic (Envs a) forall x. Rep (Envs a) x -> Envs a forall x. Envs a -> Rep (Envs a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Envs a) x -> Envs a forall a x. Envs a -> Rep (Envs a) x $cfrom :: forall a x. Envs a -> Rep (Envs a) x from :: forall x. Envs a -> Rep (Envs a) x $cto :: forall a x. Rep (Envs a) x -> Envs a to :: forall x. Rep (Envs a) x -> Envs a Generic) deriving newtype (Maybe (Envs a) Value -> Parser [Envs a] Value -> Parser (Envs a) (Value -> Parser (Envs a)) -> (Value -> Parser [Envs a]) -> Maybe (Envs a) -> FromJSON (Envs a) forall a. FromJSON a => Maybe (Envs a) forall a. FromJSON a => Value -> Parser [Envs a] forall a. FromJSON a => Value -> Parser (Envs a) forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> Maybe a -> FromJSON a $cparseJSON :: forall a. FromJSON a => Value -> Parser (Envs a) parseJSON :: Value -> Parser (Envs a) $cparseJSONList :: forall a. FromJSON a => Value -> Parser [Envs a] parseJSONList :: Value -> Parser [Envs a] $comittedField :: forall a. FromJSON a => Maybe (Envs a) omittedField :: Maybe (Envs a) FromJSON, NonEmpty (Envs a) -> Envs a Envs a -> Envs a -> Envs a (Envs a -> Envs a -> Envs a) -> (NonEmpty (Envs a) -> Envs a) -> (forall b. Integral b => b -> Envs a -> Envs a) -> Semigroup (Envs a) forall b. Integral b => b -> Envs a -> Envs a forall a. NonEmpty (Envs a) -> Envs a forall a. Envs a -> Envs a -> Envs a forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a forall a b. Integral b => b -> Envs a -> Envs a $c<> :: forall a. Envs a -> Envs a -> Envs a <> :: Envs a -> Envs a -> Envs a $csconcat :: forall a. NonEmpty (Envs a) -> Envs a sconcat :: NonEmpty (Envs a) -> Envs a $cstimes :: forall a b. Integral b => b -> Envs a -> Envs a stimes :: forall b. Integral b => b -> Envs a -> Envs a Semigroup, Semigroup (Envs a) Envs a Semigroup (Envs a) => Envs a -> (Envs a -> Envs a -> Envs a) -> ([Envs a] -> Envs a) -> Monoid (Envs a) [Envs a] -> Envs a Envs a -> Envs a -> Envs a forall a. Semigroup (Envs a) forall a. Envs a forall a. Semigroup a => a -> (a -> a -> a) -> ([a] -> a) -> Monoid a forall a. [Envs a] -> Envs a forall a. Envs a -> Envs a -> Envs a $cmempty :: forall a. Envs a mempty :: Envs a $cmappend :: forall a. Envs a -> Envs a -> Envs a mappend :: Envs a -> Envs a -> Envs a $cmconcat :: forall a. [Envs a] -> Envs a mconcat :: [Envs a] -> Envs a Monoid, Int -> [Item (Envs a)] -> Envs a [Item (Envs a)] -> Envs a Envs a -> [Item (Envs a)] ([Item (Envs a)] -> Envs a) -> (Int -> [Item (Envs a)] -> Envs a) -> (Envs a -> [Item (Envs a)]) -> IsList (Envs a) forall a. Int -> [Item (Envs a)] -> Envs a forall a. [Item (Envs a)] -> Envs a forall a. Envs a -> [Item (Envs a)] forall l. ([Item l] -> l) -> (Int -> [Item l] -> l) -> (l -> [Item l]) -> IsList l $cfromList :: forall a. [Item (Envs a)] -> Envs a fromList :: [Item (Envs a)] -> Envs a $cfromListN :: forall a. Int -> [Item (Envs a)] -> Envs a fromListN :: Int -> [Item (Envs a)] -> Envs a $ctoList :: forall a. Envs a -> [Item (Envs a)] toList :: Envs a -> [Item (Envs a)] IsList, Envs a -> Expr (Envs a -> Expr) -> EncodeNix (Envs a) forall a. EncodeNix a => Envs a -> Expr forall a. (a -> Expr) -> EncodeNix a $cencodeNix :: forall a. EncodeNix a => Envs a -> Expr encodeNix :: Envs a -> Expr EncodeNix) instance NMap (Envs a) EnvName a LookupMonoid where instance Pretty a => Pretty (Envs a) where pretty :: Envs a -> Doc pretty = Envs a -> Doc forall k v map sort. (Pretty k, Pretty v, NMap map k v sort) => map -> Doc nPretty1