internal DynamicBoundConfiguration( char valueSeparator, char escapedValueStartAndStop, char escapeValueEscapeChar, RowEndings rowEndings, ReadHeaders readHeader, WriteHeaders writeHeaders, WriteTrailingNewLines writeTrailingNewLine, MemoryPool <char> memoryPool, char?commentChar, int?writeBufferSizeHint, int readBufferSizeHint, IDynamicTypeConverter dynamicTypeConverter, DynamicRowDisposal dynamicRowDisposal ) : base( valueSeparator, escapedValueStartAndStop, escapeValueEscapeChar, rowEndings, readHeader, writeHeaders, writeTrailingNewLine, memoryPool, commentChar, writeBufferSizeHint, readBufferSizeHint, dynamicTypeConverter, dynamicRowDisposal ) { }
internal ConcreteBoundConfiguration( InstanceBuilderDelegate <T> newCons, Column[] deserializeColumns, Column[] serializeColumns, bool[] serializeColumnsNeedEscape, char valueSeparator, char escapedValueStartAndStop, char escapeValueEscapeChar, RowEndings rowEndings, ReadHeaders readHeader, WriteHeaders writeHeaders, WriteTrailingNewLines writeTrailingNewLine, MemoryPool <char> memoryPool, char?commentChar, int?writeBufferSizeHint, int readBufferSizeHint) : base( newCons, deserializeColumns, serializeColumns, serializeColumnsNeedEscape, valueSeparator, escapedValueStartAndStop, escapeValueEscapeChar, rowEndings, readHeader, writeHeaders, writeTrailingNewLine, memoryPool, commentChar, writeBufferSizeHint, readBufferSizeHint ) { }
/// <summary> /// For working with concrete types. /// </summary> protected BoundConfigurationBase( InstanceBuilderDelegate <T> newCons, Column[] deserializeColumns, Column[] serializeColumns, bool[] serializeColumnsNeedEscape, char valueSeparator, char escapedValueStartAndStop, char escapeValueEscapeChar, RowEndings rowEndings, ReadHeaders readHeader, WriteHeaders writeHeaders, WriteTrailingNewLines writeTrailingNewLine, MemoryPool <char> memoryPool, char?commentChar, int?writeBufferSizeHint, int readBufferSizeHint ) { NewCons = newCons; DeserializeColumns = deserializeColumns; SerializeColumns = serializeColumns; SerializeColumnsNeedEscape = serializeColumnsNeedEscape; ValueSeparator = valueSeparator; ValueSeparatorMemory = ValueSeparator.ToString().AsMemory(); EscapedValueStartAndStop = escapedValueStartAndStop; EscapeValueEscapeChar = escapeValueEscapeChar; RowEnding = rowEndings; WriteBufferSizeHint = writeBufferSizeHint; ReadBufferSizeHint = readBufferSizeHint; switch (RowEnding) { case RowEndings.CarriageReturn: RowEndingMemory = CarriageReturn; break; case RowEndings.CarriageReturnLineFeed: RowEndingMemory = CarriageReturnLineFeed; break; case RowEndings.LineFeed: RowEndingMemory = LineFeed; break; default: // for cases like detecting headers, actually trying to write is NO GOOD... // but construction is fine RowEndingMemory = default; break; } ReadHeader = readHeader; WriteHeader = writeHeaders; WriteTrailingNewLine = writeTrailingNewLine; MemoryPool = memoryPool; CommentChar = commentChar; DynamicTypeConverter = null; }
/// <summary> /// Set whether or not to end the last row with a new line. /// </summary> public OptionsBuilder WithWriteTrailingNewLine(WriteTrailingNewLines w) { if (!Enum.IsDefined(Types.WriteTrailingNewLinesType, w)) { Throw.ArgumentException($"Unexpected {nameof(WriteTrailingNewLines)} value: {w}", nameof(w)); } return(WithWriteTrailingNewLineInternal(w)); }
// sometimes we want to skip validation in tests internal OptionsBuilder WithWriteTrailingNewLineInternal(WriteTrailingNewLines w) { WriteTrailingNewLine = w; return(this); }