| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
Data.Csv.Parser
Description
A CSV parser. The parser defined here is RFC 4180 compliant, with the following extensions:
- Empty lines are ignored.
 - Non-escaped fields may contain any characters except double-quotes, commas, carriage returns, and newlines.
 - Escaped fields may contain any characters (but double-quotes need to be escaped).
 
The functions in this module can be used to implement e.g. a resumable parser that is fed input incrementally.
Synopsis
- data DecodeOptions = DecodeOptions {
- decDelimiter :: !Word8
 
 - defaultDecodeOptions :: DecodeOptions
 - csv :: DecodeOptions -> Parser Csv
 - csvWithHeader :: DecodeOptions -> Parser (Header, Vector NamedRecord)
 - header :: Word8 -> Parser Header
 - record :: Word8 -> Parser Record
 - name :: Word8 -> Parser Name
 - field :: Word8 -> Parser Field
 
Documentation
data DecodeOptions Source #
Options that controls how data is decoded. These options can be used to e.g. decode tab-separated data instead of comma-separated data.
To avoid having your program stop compiling when new fields are
 added to DecodeOptions, create option records by overriding
 values in defaultDecodeOptions. Example:
myOptions = defaultDecodeOptions {
      decDelimiter = fromIntegral (ord '\t')
    }Constructors
| DecodeOptions | |
Fields 
  | |
Instances
| Show DecodeOptions Source # | |
Defined in Data.Csv.Parser  | |
| Eq DecodeOptions Source # | |
Defined in Data.Csv.Parser Methods (==) :: DecodeOptions -> DecodeOptions -> Bool Source # (/=) :: DecodeOptions -> DecodeOptions -> Bool Source #  | |
defaultDecodeOptions :: DecodeOptions Source #
Decoding options for parsing CSV files.
csvWithHeader :: DecodeOptions -> Parser (Header, Vector NamedRecord) Source #
Parse a CSV file that includes a header.
Parse a header, including the terminating line separator.
Parse a record, not including the terminating line separator. The
 terminating line separate is not included as the last record in a
 CSV file is allowed to not have a terminating line separator. You
 most likely want to use the endOfLine parser in combination with
 this parser.