/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Relational/Iterators/ProxyRowsIterator.cs
62 строки
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 just proxies all the requests to inner iterator which can be replaced. /// </summary> internal sealed class ProxyRowsIterator : IRowsIterator, IRowsIteratorParent { private IRowsIterator _currentIterator; /// <inheritdoc /> public Column[] Columns => _currentIterator.Columns; /// <inheritdoc /> public Row Current => _currentIterator.Current; public IRowsIterator CurrentIterator => _currentIterator; public ProxyRowsIterator(IRowsIterator currentIterator) { _currentIterator = currentIterator; } public ProxyRowsIterator(IRowsSchema schema) { _currentIterator = new EmptyIterator(schema); } /// <summary> /// Set another iterator. /// </summary> /// <param name="rowsIterator">New iterator.</param> public void Set(IRowsIterator rowsIterator) { _currentIterator = rowsIterator; } /// <inheritdoc /> public bool MoveNext() { return _currentIterator.MoveNext(); } /// <inheritdoc /> public void Reset() { _currentIterator.Reset(); } /// <inheritdoc /> public void Explain(IndentedStringBuilder stringBuilder) { stringBuilder.AppendRowsIteratorsWithIndent("Proxy", _currentIterator); } /// <inheritdoc /> public IEnumerable<IRowsSchema> GetChildren() { yield return _currentIterator; } }