An Ini value is a mapping from section names to
IniSection values. The section names in this mapping are
normalized to lower-case and stripped of whitespace. This
sequence retains the ordering of the original source file.
Moduleconfig-ini-0.2.7.0Haskell2010
Data.Ini.Config.Raw
Warning! This module is subject to change in the future, and therefore should not be relied upon to have a consistent API.
- 5 types
- 6 values
- Packageconfig-ini-0.2.7.0
- Exports11
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceRaw.hs
INI types
6 declarationsAn IniSection consists of a name, a mapping of key-value pairs, and metadata about where the section starts and ends in the file. The section names found in isName are not normalized to lower-case or stripped of whitespace, and thus should appear exactly as they appear in the original source file.
Constructors
IniSectionisName :: TextThe name of the section, as it appears in the original INI source
isVals :: Seq (NormalizedText, IniValue)The key-value mapping within that section. Key names here are normalized to lower-case and stripped of whitespace. This sequence retains the ordering of the original source file.
isStartLine :: IntThe line on which the section begins. This field is ignored when serializing, and is only used for error messages produced when parsing and deserializing an INI structure.
isEndLine :: IntThe line on which the section ends. This field is ignored when serializing, and is only used for error messages produced when parsing and deserializing an INI structure.
isComments :: Seq BlankLineThe blank lines and comments that appear prior to the section head declaration, retained for pretty-printing identical INI files.
Instances2Eq, Show
Eq IniSectionDefined in config-ini-0.2.7.0 · Data.Ini.Config.RawShow IniSectionDefined in config-ini-0.2.7.0 · Data.Ini.Config.Raw
An IniValue represents a key-value mapping, and also stores the line number where it appears. The key names and values found in vName and vValue respectively are _not_ normalized to lower-case or stripped of whitespace, and thus should appear exactly as they appear in the original source file.
Constructors
IniValuevLineNo :: IntThe line on which the key/value mapping appears. This field is ignored when serializing, and is only used for error messages produced when parsing and deserializing an INI structure.
vName :: TextThe name of the key, as it appears in the INI source.
vValue :: TextThe value of the key
vComments :: Seq BlankLinevCommentedOut :: BoolRight now, this will never show up in a parsed INI file, but it's used when emitting a default INI file: it causes the key-value line to include a leading comment as well.
vDelimiter :: Char
We want to keep track of the whitespace/comments in between KV lines, so this allows us to track those lines in a reproducible way.
Constructors
The NormalizedText type is an abstract representation of text which has had leading and trailing whitespace removed and been normalized to lower-case, but from which we can still extract the original, non-normalized version. This acts like the normalized text for the purposes of Eq and Ord operations, so
normalize " x " == normalize "X"
This type is used to store section and key names in the
Constructors
Instances3Eq, Ord, Show
Eq NormalizedTextDefined in config-ini-0.2.7.0 · Data.Ini.Config.RawOrd NormalizedTextDefined in config-ini-0.2.7.0 · Data.Ini.Config.RawShow NormalizedTextDefined in config-ini-0.2.7.0 · Data.Ini.Config.Raw
The constructor function to build a NormalizedText value. You probably shouldn't be using this module directly, but if for some reason you are using it, then you should be using this function to create NormalizedText values.
serializing and deserializing
2 declarationsParse a Text value into an Ini value, retaining a maximal
amount of structure as needed to reconstruct the original INI file.
Serialize an INI file to text, complete with any comments which appear in the INI structure, and retaining the aesthetic details which are present in the INI file.
inspection
3 declarationslookupInSection Look up an Ini value by section name and key. Returns the sequence of matches.
lookupSection :: TextThe section name. Will be normalized prior to comparison.
-> RawIniThe Ini to search.
-> Seq IniSection
Look up an Ini section by name. Returns a sequence of all matching section records.
lookupValue :: TextThe key. Will be normalized prior to comparison.
-> IniSectionThe section to search.
-> Seq IniValue
Look up an Ini key's value in a given section by the key. Returns the sequence of matches.