Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
 internal SyncReaderBase(IReaderAdapter inner, BoundConfigurationBase <T> config, object?context, IRowConstructor <T> rowBuilder, ExtraColumnTreatment extraTreatment) : base(config, context, rowBuilder, extraTreatment)
 {
     Inner = inner;
 }
Exemplo n.º 5
0
 internal OptionsBuilder WithExtraColumnTreatmentInternal(ExtraColumnTreatment extraColumnTreatment)
 {
     ExtraColumnTreatment = extraColumnTreatment;
     return(this);
 }