/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/yson_pull/range.h
35 строк
810 B
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#pragma once #include "reader.h" #include <util/generic/iterator.h> namespace NYsonPull { class TStreamEventsRange: public TInputRangeAdaptor<TStreamEventsRange> { TReader Reader_; bool AtEnd; public: TStreamEventsRange(THolder<NInput::IStream> stream, EStreamType mode) : Reader_{std::move(stream), mode} , AtEnd(false) { } const TEvent* Last() const noexcept { return &Reader_.LastEvent(); } const TEvent* Next() { if (Y_UNLIKELY(AtEnd)) { return nullptr; } auto* event = &Reader_.NextEvent(); if (event->Type() == EEventType::EndStream) { AtEnd = true; } return event; } }; }