/// <summary> /// Set how to treat extra columns when parsing. /// </summary> public OptionsBuilder WithExtraColumnTreatment(ExtraColumnTreatment extraColumnTreatment) { // ExtraColumnTreatment not recognized if (!Enum.IsDefined(Types.ExtraColumnTreatment, extraColumnTreatment)) { Throw.ArgumentException($"Unexpected {nameof(ExtraColumnTreatment)} value: {extraColumnTreatment}", nameof(extraColumnTreatment)); } return(WithExtraColumnTreatmentInternal(extraColumnTreatment)); }
internal Options(OptionsBuilder copy) { ValueSeparator = copy.ValueSeparator; EscapedValueStartAndEnd = copy.EscapedValueStartAndEnd; EscapedValueEscapeCharacter = copy.EscapedValueEscapeCharacter; ReadRowEnding = copy.ReadRowEnding; WriteRowEnding = copy.WriteRowEnding; ReadHeader = copy.ReadHeader; WriteHeader = copy.WriteHeader; TypeDescriber = Utils.NonNull(copy.TypeDescriber); WriteTrailingRowEnding = copy.WriteTrailingRowEnding; MemoryPoolProvider = Utils.NonNull(copy.MemoryPoolProvider); CommentCharacter = copy.CommentCharacter; WriteBufferSizeHint = copy.WriteBufferSizeHint; ReadBufferSizeHint = copy.ReadBufferSizeHint; DynamicRowDisposal = copy.DynamicRowDisposal; WhitespaceTreatment = copy.WhitespaceTreatment; ExtraColumnTreatment = copy.ExtraColumnTreatment; }
protected ReaderBase(BoundConfigurationBase <T> config, object?context, IRowConstructor <T> rowBuilder, ExtraColumnTreatment extraTreatment) { RowNumber = 0; Configuration = config; Context = context; var options = config.Options; var bufferSize = options.ReadBufferSizeHint; if (bufferSize == 0) { bufferSize = Utils.DEFAULT_BUFFER_SIZE; } // always need to be able to store a whole value separator "character" var bufferMinSize = config.ValueSeparatorMemory.Length * 2; if (bufferSize < bufferMinSize) { bufferSize = bufferMinSize; } var memPool = config.MemoryPool; Buffer = new BufferWithPushback( memPool, bufferSize ); Partial = new Partial(memPool); SharedCharacterLookup = CharacterLookup.MakeCharacterLookup(options, out _); StateMachine = new ReaderStateMachine(); RowBuilder = rowBuilder; ExtraColumnTreatment = extraTreatment; }
internal SyncReaderBase(IReaderAdapter inner, BoundConfigurationBase <T> config, object?context, IRowConstructor <T> rowBuilder, ExtraColumnTreatment extraTreatment) : base(config, context, rowBuilder, extraTreatment) { Inner = inner; }
internal OptionsBuilder WithExtraColumnTreatmentInternal(ExtraColumnTreatment extraColumnTreatment) { ExtraColumnTreatment = extraColumnTreatment; return(this); }