| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Settei.Setting
Description
Synopsis
- data Sensitivity
- data Setting a
- decodeSetting :: Setting a -> RawValue -> Either DecodeFailure a
- publicShowSetting :: Show a => Key -> Text -> Decoder a -> Setting a
- publicSetting :: Key -> Text -> Decoder a -> Setting a
- publicSettingWithRenderer :: Key -> Text -> Decoder a -> (a -> Text) -> Setting a
- secretSetting :: Key -> Text -> Decoder a -> Setting a
- settingDescription :: Setting a -> Text
- settingKey :: Setting a -> Key
- settingSensitivity :: Setting a -> Sensitivity
- settingValueRenderer :: Setting a -> Maybe (a -> Text)
- withRenderer :: (a -> Text) -> Setting a -> Setting a
Documentation
data Sensitivity Source #
Whether reports may display a setting's resolved value.
Instances
| Generic Sensitivity Source # | |||||
Defined in Settei.Setting Associated Types
| |||||
| Show Sensitivity Source # | |||||
Defined in Settei.Setting Methods showsPrec :: Int -> Sensitivity -> ShowS # show :: Sensitivity -> String # showList :: [Sensitivity] -> ShowS # | |||||
| Eq Sensitivity Source # | |||||
Defined in Settei.Setting | |||||
| Ord Sensitivity Source # | |||||
Defined in Settei.Setting Methods compare :: Sensitivity -> Sensitivity -> Ordering # (<) :: Sensitivity -> Sensitivity -> Bool # (<=) :: Sensitivity -> Sensitivity -> Bool # (>) :: Sensitivity -> Sensitivity -> Bool # (>=) :: Sensitivity -> Sensitivity -> Bool # max :: Sensitivity -> Sensitivity -> Sensitivity # min :: Sensitivity -> Sensitivity -> Sensitivity # | |||||
| type Rep Sensitivity Source # | |||||
Metadata and decoding behavior for one logical setting.
The constructor stays private so callers use the explicit public or secret smart
constructors. The type has no Show instance because its decoder will receive raw
values that may be sensitive.
Instances
decodeSetting :: Setting a -> RawValue -> Either DecodeFailure a Source #
Decode one raw candidate using the setting's validated key.
publicShowSetting :: Show a => Key -> Text -> Decoder a -> Setting a Source #
Declare a public setting whose typed default values render via show.
Equivalent to publicSettingWithRenderer with Text.pack . show. Best for primitive
and enum-like types; a derived Show of a rich type may be ugly in reports but is
never unsafe, because renderers only affect display of typed defaults and secret
settings always redact regardless of any renderer.
publicSetting :: Key -> Text -> Decoder a -> Setting a Source #
Declare a setting whose resolved value may appear in reports.
publicSettingWithRenderer :: Key -> Text -> Decoder a -> (a -> Text) -> Setting a Source #
Declare a public setting with a renderer for typed default values.
Source candidates render directly from RawValue; this renderer is used only after a
typed constant or derived default has been evaluated.
secretSetting :: Key -> Text -> Decoder a -> Setting a Source #
Declare a setting whose resolved value must be redacted from reports.
settingDescription :: Setting a -> Text Source #
Inspect the setting's human-readable purpose.
settingKey :: Setting a -> Key Source #
Inspect the setting's key.
settingSensitivity :: Setting a -> Sensitivity Source #
Inspect whether the setting is public or secret.
settingValueRenderer :: Setting a -> Maybe (a -> Text) Source #
Return the optional renderer for a public typed default.
withRenderer :: (a -> Text) -> Setting a -> Setting a Source #
Attach or replace the typed-default renderer of an existing setting.
On a secret setting this is harmless: the stored renderer is ignored and reports keep showing the redaction marker (see Settei.Resolve).