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 ) { }
/// <summary> /// For working with dynamic. /// </summary> protected BoundConfigurationBase( 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 ) { NewCons = null; DeserializeColumns = Array.Empty <Column>(); SerializeColumns = Array.Empty <Column>(); SerializeColumnsNeedEscape = Array.Empty <bool>(); 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 = dynamicTypeConverter; DynamicRowDisposal = dynamicRowDisposal; }
/// <summary> /// Set when dynamic rows returned by a reader are disposed. /// /// The options are either when the reader is disposed (the default) or /// when the row is explicitly disposed. /// </summary> public OptionsBuilder WithDynamicRowDisposal(DynamicRowDisposal d) { if (!Enum.IsDefined(typeof(DynamicRowDisposal), d)) { Throw.ArgumentException($"Unexpected {nameof(DynamicRowDisposal)} value: {d}", nameof(d)); } return(WithDynamicRowDisposalInternal(d)); }
internal OptionsBuilder(Options copy) { ValueSeparator = copy.ValueSeparator; EscapedValueStartAndEnd = copy.EscapedValueStartAndEnd; EscapedValueEscapeCharacter = copy.EscapedValueEscapeCharacter; RowEnding = copy.RowEnding; ReadHeader = copy.ReadHeader; WriteHeader = copy.WriteHeader; TypeDescriber = copy.TypeDescriber; WriteTrailingNewLine = copy.WriteTrailingNewLine; MemoryPool = copy.MemoryPool; CommentCharacter = copy.CommentCharacter; WriteBufferSizeHint = copy.WriteBufferSizeHint; ReadBufferSizeHint = copy.ReadBufferSizeHint; DynamicTypeConverter = copy.DynamicTypeConverter; DynamicRowDisposal = copy.DynamicRowDisposal; }
// sometimes we want to skip validation in tests internal OptionsBuilder WithDynamicRowDisposalInternal(DynamicRowDisposal d) { DynamicRowDisposal = d; return(this); }