internal ConcreteBoundConfiguration( InstanceBuilderDelegate <T> newCons, Column[] deserializeColumns, Column[] serializeColumns, bool[] serializeColumnsNeedEscape, char valueSeparator, char escapedValueStartAndStop, char escapeValueEscapeChar, RowEndings rowEndings, ReadHeaders readHeader, WriteHeaders writeHeaders, WriteTrailingNewLines writeTrailingNewLine, MemoryPool <char> memoryPool, char?commentChar, int?writeBufferSizeHint, int readBufferSizeHint) : base( newCons, deserializeColumns, serializeColumns, serializeColumnsNeedEscape, valueSeparator, escapedValueStartAndStop, escapeValueEscapeChar, rowEndings, readHeader, writeHeaders, writeTrailingNewLine, memoryPool, commentChar, writeBufferSizeHint, readBufferSizeHint ) { }
/// <summary> /// For working with concrete types. /// </summary> protected BoundConfigurationBase( InstanceBuilderDelegate <T> newCons, Column[] deserializeColumns, Column[] serializeColumns, bool[] serializeColumnsNeedEscape, char valueSeparator, char escapedValueStartAndStop, char escapeValueEscapeChar, RowEndings rowEndings, ReadHeaders readHeader, WriteHeaders writeHeaders, WriteTrailingNewLines writeTrailingNewLine, MemoryPool <char> memoryPool, char?commentChar, int?writeBufferSizeHint, int readBufferSizeHint ) { NewCons = newCons; DeserializeColumns = deserializeColumns; SerializeColumns = serializeColumns; SerializeColumnsNeedEscape = serializeColumnsNeedEscape; 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 = null; }
/// <summary> /// Create a new InstanceBuilder from delegate. /// /// There are no restrictions on what the give delegate may do, /// but be aware that it may be called from many different contexts. /// </summary> public static InstanceBuilder ForDelegate <T>(InstanceBuilderDelegate <T> del) { if (del == null) { Throw.ArgumentNullException(nameof(del)); } return(new InstanceBuilder(del, typeof(T).GetTypeInfo())); }
public InstanceBuilder GetInstanceBuilder(TypeInfo forType) { InstanceBuilderDelegate <_BridgeDelegate_Subclass> x = (out _BridgeDelegate_Subclass foo) => { foo = new _BridgeDelegate_Subclass(123); return(true); }; return(InstanceBuilder.ForDelegate(x)); }