/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Relational/Iterators/LazySetupRowsFrameIterator.cs
36 строк
1 KB
Ivan Kozhin
"Rebalance" utils (again), improve AOT support
22 дек 2023, 08:49
22 дек 2023, 08:49
b81d64f
Код
Авторство
О чём код?
using QueryCat.Backend.Core.Data; namespace QueryCat.Backend.Relational.Iterators; /// <summary> /// The iterator allows to create instance of <see cref="RowsFrame" /> right before MoveNext call. /// </summary> internal sealed class LazySetupRowsFrameIterator : SetupRowsIterator { private readonly Action<RowsFrame, RowsFrameIterator> _rowsFrameFactory; private readonly RowsFrame _rowsFrame; public RowsFrame RowsFrame => _rowsFrame; public LazySetupRowsFrameIterator( Column[] columns, Action<RowsFrame, RowsFrameIterator> rowsFrameFactory) : base(new RowsFrame(columns).GetIterator(), "create frame") { _rowsFrameFactory = rowsFrameFactory; _rowsFrame = ((RowsFrameIterator)RowsIterator).RowsFrame; } /// <inheritdoc /> public override void Initialize() { _rowsFrameFactory.Invoke(_rowsFrame, (RowsFrameIterator)RowsIterator); base.Initialize(); } /// <inheritdoc /> public override void Explain(IndentedStringBuilder stringBuilder) { stringBuilder.AppendRowsIteratorsWithIndent("Lazy Setup"); } }