settei
Safe HaskellNone
LanguageGHC2024

Settei.Setting

Description

 
Synopsis

Documentation

data Sensitivity Source #

Whether reports may display a setting's resolved value.

Constructors

Public 
Secret 

Instances

Instances details
Generic Sensitivity Source # 
Instance details

Defined in Settei.Setting

Associated Types

type Rep Sensitivity 
Instance details

Defined in Settei.Setting

type Rep Sensitivity = D1 ('MetaData "Sensitivity" "Settei.Setting" "settei-0.2.0.0-inplace" 'False) (C1 ('MetaCons "Public" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Secret" 'PrefixI 'False) (U1 :: Type -> Type))
Show Sensitivity Source # 
Instance details

Defined in Settei.Setting

Eq Sensitivity Source # 
Instance details

Defined in Settei.Setting

Ord Sensitivity Source # 
Instance details

Defined in Settei.Setting

type Rep Sensitivity Source # 
Instance details

Defined in Settei.Setting

type Rep Sensitivity = D1 ('MetaData "Sensitivity" "Settei.Setting" "settei-0.2.0.0-inplace" 'False) (C1 ('MetaCons "Public" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Secret" 'PrefixI 'False) (U1 :: Type -> Type))

data Setting a 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

Instances details
Generic (Setting a) Source # 
Instance details

Defined in Settei.Setting

Associated Types

type Rep (Setting a) 
Instance details

Defined in Settei.Setting

type Rep (Setting a) = D1 ('MetaData "Setting" "Settei.Setting" "settei-0.2.0.0-inplace" 'False) (C1 ('MetaCons "Setting" 'PrefixI 'True) ((S1 ('MetaSel ('Just "key") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Key) :*: S1 ('MetaSel ('Just "description") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "sensitivity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sensitivity) :*: (S1 ('MetaSel ('Just "decoder") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Decoder a)) :*: S1 ('MetaSel ('Just "renderer") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe (a -> Text)))))))

Methods

from :: Setting a -> Rep (Setting a) x #

to :: Rep (Setting a) x -> Setting a #

type Rep (Setting a) Source # 
Instance details

Defined in Settei.Setting

type Rep (Setting a) = D1 ('MetaData "Setting" "Settei.Setting" "settei-0.2.0.0-inplace" 'False) (C1 ('MetaCons "Setting" 'PrefixI 'True) ((S1 ('MetaSel ('Just "key") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Key) :*: S1 ('MetaSel ('Just "description") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "sensitivity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sensitivity) :*: (S1 ('MetaSel ('Just "decoder") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Decoder a)) :*: S1 ('MetaSel ('Just "renderer") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe (a -> Text)))))))

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).