private void EstimatorCore <T>(RowCursor cursor, ColumnCodec col, out Func <long> fetchWriteEstimator, out IValueWriter writer) { ValueGetter <T> getter = cursor.GetGetter <T>(col.SourceIndex); IValueCodec <T> codec = col.Codec as IValueCodec <T>; _host.AssertValue(codec); IValueWriter <T> specificWriter = codec.OpenWriter(Stream.Null); writer = specificWriter; T val = default(T); fetchWriteEstimator = () => { getter(ref val); specificWriter.Write(in val); return(specificWriter.GetCommitLengthEstimate()); }; }