Esempio n. 1
0
        /// <summary>
        /// Set how to treat whitespace when parsing.
        /// </summary>
        public OptionsBuilder WithWhitespaceTreatment(WhitespaceTreatments whitespaceTreatment)
        {
            // WhitespaceTreatment not recognized
            if (!Utils.IsLegalFlagEnum(whitespaceTreatment))
            {
                Throw.ArgumentException($"{nameof(WhitespaceTreatment)} has an unexpected value, '{WhitespaceTreatment}'", nameof(whitespaceTreatment));
            }

            return(WithWhitespaceTreatmentInternal(whitespaceTreatment));
        }
Esempio n. 2
0
            internal HeaderEnumerator(int count, ReadOnlyMemory <char> buffer, WhitespaceTreatments whitespaceTreatment)
            {
                IsDisposed          = false;
                Count               = count;
                Buffer              = buffer;
                WhitespaceTreatment = whitespaceTreatment;

                _Current           = default;
                NextHeaderIndex    = 0;
                CurrentBufferIndex = 0;
            }
Esempio n. 3
0
        private HeadersReader(
            ReaderStateMachine stateMachine,
            BoundConfigurationBase <T> config,
            CharacterLookup charLookup,
            IReaderAdapter?inner,
            IAsyncReaderAdapter?innerAsync,
            BufferWithPushback buffer,
            ReadRowEnding rowEndingOverride
            )
        {
            LogHelper.StateTransition_NewHeadersReader();

            Configuration = config;

            Inner.SetAllowNull(inner);
            InnerAsync.SetAllowNull(innerAsync);

            var options = Configuration.Options;

            MemoryPool     = Configuration.MemoryPool;
            BufferSizeHint = options.ReadBufferSizeHint;
            Columns        = config.DeserializeColumns;

            StateMachine = stateMachine;
            stateMachine.Initialize(
                charLookup,
                options.EscapedValueStartAndEnd,
                options.EscapedValueEscapeCharacter,
                rowEndingOverride,                      // this can be something OTHER than what was provided, due to RowEnding.Detect
                ReadHeader.Never,
                false,
                options.WhitespaceTreatment.HasFlag(WhitespaceTreatments.TrimBeforeValues),
                options.WhitespaceTreatment.HasFlag(WhitespaceTreatments.TrimAfterValues)
                );

            Buffer = buffer;

            HeaderCount         = 0;
            PushBackLength      = 0;
            WhitespaceTreatment = options.WhitespaceTreatment;
        }
Esempio n. 4
0
 internal OptionsBuilder WithWhitespaceTreatmentInternal(WhitespaceTreatments whitespaceTreatment)
 {
     WhitespaceTreatment = whitespaceTreatment;
     return(this);
 }