// Copyright 2009-2022 Josh Close // This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0. // See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0. // https://github.com/JoshClose/CsvHelper using CsvHelper.Delegates; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Text; namespace CsvHelper.Configuration { /// /// Configuration used for the . /// public interface IParserConfiguration { /// /// Gets the culture info used to read an write CSV files. /// CultureInfo CultureInfo { get; } /// /// Cache fields that are created when parsing. /// Default is false. /// bool CacheFields { get; } /// /// The newline string to use. Default is \r\n (CRLF). /// When writing, this value is always used. /// When reading, this value is only used if explicitly set. /// If not set, the parser uses one of \r\n, \r, or \n. /// string NewLine { get; } /// /// A value indicating if was set. /// /// /// true if was set. false if is the default. /// bool IsNewLineSet { get; } /// /// The mode. /// See for more details. /// CsvMode Mode { get; } /// /// Gets the size of the buffer /// used for parsing and writing CSV files. /// Default is 0x1000. /// int BufferSize { get; } /// /// The size of the buffer used when processing fields. /// Default is 1024. /// int ProcessFieldBufferSize { get; } /// /// Gets a value indicating whether the number of bytes should /// be counted while parsing. Default is false. This will slow down parsing /// because it needs to get the byte count of every char for the given encoding. /// The needs to be set correctly for this to be accurate. /// bool CountBytes { get; } /// /// Gets the encoding used when counting bytes. /// Encoding Encoding { get; } /// /// Gets the function that is called when bad field data is found. A field /// has bad data if it contains a quote and the field is not quoted (escaped). /// You can supply your own function to do other things like logging the issue /// instead of throwing an exception. /// BadDataFound BadDataFound { get; } /// /// Gets or sets the maximum size of a field. /// Defaults to 0, indicating maximum field size is not checked. /// double MaxFieldSize { get; } /// /// Gets a value indicating if a line break found in a quote field should /// be considered bad data. true to consider a line break bad data, otherwise false. /// Defaults to false. /// bool LineBreakInQuotedFieldIsBadData { get; } /// /// Gets the character used to denote /// a line that is commented out. Default is '#'. /// char Comment { get; } /// /// Gets a value indicating if comments are allowed. /// true to allow commented out lines, otherwise false. /// bool AllowComments { get; } /// /// Gets a value indicating if blank lines /// should be ignored when reading. /// true to ignore, otherwise false. Default is true. /// bool IgnoreBlankLines { get; } /// /// Gets the character used to quote fields. /// Default is '"'. /// char Quote { get; } /// /// The delimiter used to separate fields. /// Default is . /// string Delimiter { get; } /// /// Detect the delimiter instead of using the delimiter from configuration. /// Default is false. /// bool DetectDelimiter { get; } /// /// Gets the function that is called when is enabled. /// GetDelimiter GetDelimiter { get; } /// /// The possible delimiter values used when detecting the delimiter. /// Default is [",", ";", "|", "\t"]. /// string[] DetectDelimiterValues { get; } /// /// The character used to escape characters. /// Default is '"'. /// char Escape { get; } /// /// Gets the field trimming options. /// TrimOptions TrimOptions { get; } /// /// Characters considered whitespace. /// Used when trimming fields. /// Default is [' ']. /// char[] WhiteSpaceChars { get; } /// /// A value indicating if exception messages contain raw CSV data. /// true if exception contain raw CSV data, otherwise false. /// Default is true. /// bool ExceptionMessagesContainRawData { get; } /// /// Validates the configuration. /// void Validate(); } }