summaryrefslogtreecommitdiff
path: root/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IWriterConfiguration.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IWriterConfiguration.cs')
-rw-r--r--ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IWriterConfiguration.cs168
1 files changed, 168 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IWriterConfiguration.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IWriterConfiguration.cs
new file mode 100644
index 0000000..349c493
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IWriterConfiguration.cs
@@ -0,0 +1,168 @@
+// 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 System.Globalization;
+using System.Collections.Generic;
+using System.IO;
+
+namespace CsvHelper.Configuration
+{
+ /// <summary>
+ /// Configuration used for the <see cref="IWriter"/>.
+ /// </summary>
+ public interface IWriterConfiguration
+ {
+ /// <summary>
+ /// Gets the size of the buffer
+ /// used for parsing and writing CSV files.
+ /// Default is 0x1000.
+ /// </summary>
+ int BufferSize { get; }
+
+ /// <summary>
+ /// The mode.
+ /// See <see cref="CsvMode"/> for more details.
+ /// </summary>
+ CsvMode Mode { get; }
+
+ /// <summary>
+ /// Gets the delimiter used to separate fields.
+ /// Default is ',';
+ /// </summary>
+ string Delimiter { get; }
+
+ /// <summary>
+ /// Gets the character used to quote fields.
+ /// Default is '"'.
+ /// </summary>
+ char Quote { get; }
+
+ /// <summary>
+ /// The character used to escape characters.
+ /// Default is '"'.
+ /// </summary>
+ char Escape { get; }
+
+ /// <summary>
+ /// Gets the field trimming options.
+ /// </summary>
+ TrimOptions TrimOptions { get; }
+
+ /// <summary>
+ /// Gets the injection options.
+ /// </summary>
+ InjectionOptions InjectionOptions { get; }
+
+ /// <summary>
+ /// Gets the characters that are used for injection attacks.
+ /// </summary>
+ char[] InjectionCharacters { get; }
+
+ /// <summary>
+ /// Gets the character used to escape a detected injection.
+ /// </summary>
+ char InjectionEscapeCharacter { get; }
+
+ /// <summary>
+ /// 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.
+ /// </summary>
+ string NewLine { get; }
+
+ /// <summary>
+ /// A value indicating if <see cref="NewLine"/> was set.
+ /// </summary>
+ /// <value>
+ /// <c>true</c> if <see cref="NewLine"/> was set. <c>false</c> if <see cref="NewLine"/> is the default.
+ /// </value>
+ bool IsNewLineSet { get; }
+
+ /// <summary>
+ /// Gets a function that is used to determine if a field should get quoted
+ /// when writing.
+ /// </summary>
+ ShouldQuote ShouldQuote { get; }
+
+ /// <summary>
+ /// Gets the culture info used to read and write CSV files.
+ /// </summary>
+ CultureInfo CultureInfo { get; }
+
+ /// <summary>
+ /// Gets a value indicating if comments are allowed.
+ /// True to allow commented out lines, otherwise false.
+ /// </summary>
+ bool AllowComments { get; }
+
+ /// <summary>
+ /// Gets the character used to denote
+ /// a line that is commented out. Default is '#'.
+ /// </summary>
+ char Comment { get; }
+
+ /// <summary>
+ /// Gets a value indicating if the
+ /// CSV file has a header record.
+ /// Default is true.
+ /// </summary>
+ bool HasHeaderRecord { get; }
+
+ /// <summary>
+ /// Gets a value indicating whether references
+ /// should be ignored when auto mapping. True to ignore
+ /// references, otherwise false. Default is false.
+ /// </summary>
+ bool IgnoreReferences { get; }
+
+ /// <summary>
+ /// Gets a value indicating if private
+ /// member should be read from and written to.
+ /// True to include private member, otherwise false. Default is false.
+ /// </summary>
+ bool IncludePrivateMembers { get; }
+
+ /// <summary>
+ /// Gets a callback that will return the prefix for a reference header.
+ /// </summary>
+ ReferenceHeaderPrefix ReferenceHeaderPrefix { get; }
+
+ /// <summary>
+ /// Gets the member types that are used when auto mapping.
+ /// MemberTypes are flags, so you can choose more than one.
+ /// Default is Properties.
+ /// </summary>
+ MemberTypes MemberTypes { get; }
+
+ /// <summary>
+ /// Gets a value indicating that during writing if a new
+ /// object should be created when a reference member is null.
+ /// True to create a new object and use it's defaults for the
+ /// fields, or false to leave the fields empty for all the
+ /// reference member's member.
+ /// </summary>
+ bool UseNewObjectForNullReferenceMembers { get; }
+
+ /// <summary>
+ /// Gets the comparer used to order the properties
+ /// of dynamic objects when writing. The default is null,
+ /// which will preserve the order the object properties
+ /// were created with.
+ /// </summary>
+ IComparer<string> DynamicPropertySort { get; }
+
+ /// <summary>
+ /// A value indicating if exception messages contain raw CSV data.
+ /// <c>true</c> if exception contain raw CSV data, otherwise <c>false</c>.
+ /// Default is <c>true</c>.
+ /// </summary>
+ bool ExceptionMessagesContainRawData { get; }
+
+ /// <summary>
+ /// Validates the configuration.
+ /// </summary>
+ void Validate();
+ }
+}