From 2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 12 May 2023 09:24:40 +0800 Subject: *misc --- .../CsvHelper-master/src/CsvHelper/IReader.cs | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IReader.cs (limited to 'ThirdParty/CsvHelper-master/src/CsvHelper/IReader.cs') diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/IReader.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/IReader.cs new file mode 100644 index 0000000..3eb598e --- /dev/null +++ b/ThirdParty/CsvHelper-master/src/CsvHelper/IReader.cs @@ -0,0 +1,126 @@ +// 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; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Threading; + +namespace CsvHelper +{ + /// + /// Defines methods used to read parsed data + /// from a CSV file. + /// + public interface IReader : IReaderRow, IDisposable + { + /// + /// Reads the header record without reading the first row. + /// + /// True if there are more records, otherwise false. + bool ReadHeader(); + + /// + /// Advances the reader to the next record. This will not read headers. + /// You need to call then + /// for the headers to be read. + /// + /// True if there are more records, otherwise false. + bool Read(); + + /// + /// Advances the reader to the next record. This will not read headers. + /// You need to call then + /// for the headers to be read. + /// + /// True if there are more records, otherwise false. + Task ReadAsync(); + + /// + /// Gets all the records in the CSV file and + /// converts each to T. The Read method + /// should not be used when using this. + /// + /// The of the record. + /// An of records. + IEnumerable GetRecords(); + + /// + /// Gets all the records in the CSV file and converts + /// each to T. The read method + /// should not be used when using this. + /// + /// The of the record. + /// The anonymous type definition to use for the records. + /// An of records. + IEnumerable GetRecords(T anonymousTypeDefinition); + + /// + /// Gets all the records in the CSV file and + /// converts each to T. The Read method + /// should not be used when using this. + /// + /// The of the record. + /// An of records. + IEnumerable GetRecords(Type type); + + /// + /// Enumerates the records hydrating the given record instance with row data. + /// The record instance is re-used and not cleared on each enumeration. + /// This only works for streaming rows. If any methods are called on the projection + /// that force the evaluation of the IEnumerable, such as ToList(), the entire list + /// will contain the same instance of the record, which is the last row. + /// + /// The type of the record. + /// The record to fill each enumeration. + /// An of records. + IEnumerable EnumerateRecords(T record); + +#if !NET45 + /// + /// Gets all the records in the CSV file and + /// converts each to T. The Read method + /// should not be used when using this. + /// + /// The of the record. + /// The cancellation token to stop the writing. + /// An of records. + IAsyncEnumerable GetRecordsAsync(CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// Gets all the records in the CSV file and converts + /// each to T. The read method + /// should not be used when using this. + /// + /// The of the record. + /// The anonymous type definition to use for the records. + /// The cancellation token to stop the writing. + /// An of records. + IAsyncEnumerable GetRecordsAsync(T anonymousTypeDefinition, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// Gets all the records in the CSV file and + /// converts each to T. The Read method + /// should not be used when using this. + /// + /// The of the record. + /// The cancellation token to stop the writing. + /// An of records. + IAsyncEnumerable GetRecordsAsync(Type type, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// Enumerates the records hydrating the given record instance with row data. + /// The record instance is re-used and not cleared on each enumeration. + /// This only works for streaming rows. If any methods are called on the projection + /// that force the evaluation of the IEnumerable, such as ToList(), the entire list + /// will contain the same instance of the record, which is the last row. + /// + /// The type of the record. + /// The record to fill each enumeration. + /// /// The cancellation token to stop the writing. + /// An of records. + IAsyncEnumerable EnumerateRecordsAsync(T record, CancellationToken cancellationToken = default(CancellationToken)); +#endif + } +} -- cgit v1.1-26-g67d0