module Hix.Data.EnvName where import Data.Aeson (FromJSON, FromJSONKey) import Distribution.Pretty (Pretty (pretty)) import Hix.Class.EncodeNix (EncodeNixKey) import Hix.Pretty (prettyText) newtype EnvName = EnvName { EnvName -> Text unEnvName :: Text } deriving stock (EnvName -> EnvName -> Bool (EnvName -> EnvName -> Bool) -> (EnvName -> EnvName -> Bool) -> Eq EnvName forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: EnvName -> EnvName -> Bool == :: EnvName -> EnvName -> Bool $c/= :: EnvName -> EnvName -> Bool /= :: EnvName -> EnvName -> Bool Eq, Int -> EnvName -> ShowS [EnvName] -> ShowS EnvName -> String (Int -> EnvName -> ShowS) -> (EnvName -> String) -> ([EnvName] -> ShowS) -> Show EnvName forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> EnvName -> ShowS showsPrec :: Int -> EnvName -> ShowS $cshow :: EnvName -> String show :: EnvName -> String $cshowList :: [EnvName] -> ShowS showList :: [EnvName] -> ShowS Show, (forall x. EnvName -> Rep EnvName x) -> (forall x. Rep EnvName x -> EnvName) -> Generic EnvName forall x. Rep EnvName x -> EnvName forall x. EnvName -> Rep EnvName x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. EnvName -> Rep EnvName x from :: forall x. EnvName -> Rep EnvName x $cto :: forall x. Rep EnvName x -> EnvName to :: forall x. Rep EnvName x -> EnvName Generic) deriving newtype (String -> EnvName (String -> EnvName) -> IsString EnvName forall a. (String -> a) -> IsString a $cfromString :: String -> EnvName fromString :: String -> EnvName IsString, Eq EnvName Eq EnvName => (EnvName -> EnvName -> Ordering) -> (EnvName -> EnvName -> Bool) -> (EnvName -> EnvName -> Bool) -> (EnvName -> EnvName -> Bool) -> (EnvName -> EnvName -> Bool) -> (EnvName -> EnvName -> EnvName) -> (EnvName -> EnvName -> EnvName) -> Ord EnvName EnvName -> EnvName -> Bool EnvName -> EnvName -> Ordering EnvName -> EnvName -> EnvName 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 :: EnvName -> EnvName -> Ordering compare :: EnvName -> EnvName -> Ordering $c< :: EnvName -> EnvName -> Bool < :: EnvName -> EnvName -> Bool $c<= :: EnvName -> EnvName -> Bool <= :: EnvName -> EnvName -> Bool $c> :: EnvName -> EnvName -> Bool > :: EnvName -> EnvName -> Bool $c>= :: EnvName -> EnvName -> Bool >= :: EnvName -> EnvName -> Bool $cmax :: EnvName -> EnvName -> EnvName max :: EnvName -> EnvName -> EnvName $cmin :: EnvName -> EnvName -> EnvName min :: EnvName -> EnvName -> EnvName Ord, Maybe EnvName Value -> Parser [EnvName] Value -> Parser EnvName (Value -> Parser EnvName) -> (Value -> Parser [EnvName]) -> Maybe EnvName -> FromJSON EnvName forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> Maybe a -> FromJSON a $cparseJSON :: Value -> Parser EnvName parseJSON :: Value -> Parser EnvName $cparseJSONList :: Value -> Parser [EnvName] parseJSONList :: Value -> Parser [EnvName] $comittedField :: Maybe EnvName omittedField :: Maybe EnvName FromJSON, FromJSONKeyFunction [EnvName] FromJSONKeyFunction EnvName FromJSONKeyFunction EnvName -> FromJSONKeyFunction [EnvName] -> FromJSONKey EnvName forall a. FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a $cfromJSONKey :: FromJSONKeyFunction EnvName fromJSONKey :: FromJSONKeyFunction EnvName $cfromJSONKeyList :: FromJSONKeyFunction [EnvName] fromJSONKeyList :: FromJSONKeyFunction [EnvName] FromJSONKey, EnvName -> Text (EnvName -> Text) -> EncodeNixKey EnvName forall a. (a -> Text) -> EncodeNixKey a $cencodeNixKey :: EnvName -> Text encodeNixKey :: EnvName -> Text EncodeNixKey) instance Pretty EnvName where pretty :: EnvName -> Doc pretty (EnvName Text n) = Text -> Doc prettyText Text n