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
         )
 {
 }
Exemplo n.º 2
0
        /// <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;
        }
Exemplo n.º 3
0
        /// <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));
        }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 // sometimes we want to skip validation in tests
 internal OptionsBuilder WithDynamicRowDisposalInternal(DynamicRowDisposal d)
 {
     DynamicRowDisposal = d;
     return(this);
 }