/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "export/export_controller.h" namespace Export { namespace View { struct Content { struct Row { QString id; QString label; QString info; float64 progress = 0.; }; std::vector rows; }; Content ContentFromState(const ProcessingState &state); inline auto ContentFromState(rpl::producer state) { return std::move( state ) | rpl::filter([](const State &state) { return state.is() || state.is(); }) | rpl::map([](const State &state) { if (const auto process = base::get_if(&state)) { return ContentFromState(*process); } return Content(); }); } } // namespace View } // namespace Export