text_variant.h 733 B

12345678910111213141516171819202122232425262728
  1. // This file is part of Desktop App Toolkit,
  2. // a set of libraries for developing nice desktop applications.
  3. //
  4. // For license and copyright information please follow this link:
  5. // https://github.com/desktop-app/legal/blob/master/LEGAL
  6. //
  7. #pragma once
  8. #include "ui/text/text_entity.h"
  9. namespace v::text {
  10. using data = std::variant<
  11. v::null_t,
  12. QString,
  13. rpl::producer<QString>,
  14. TextWithEntities,
  15. rpl::producer<TextWithEntities>>;
  16. [[nodiscard]] rpl::producer<QString> take_plain(
  17. data &&d,
  18. rpl::producer<QString> &&fallback = rpl::never<QString>());
  19. [[nodiscard]] rpl::producer<TextWithEntities> take_marked(
  20. data &&d,
  21. rpl::producer<TextWithEntities> &&fallback
  22. = rpl::never<TextWithEntities>());
  23. } // namespace v::text