Iros
 
Loading...
Searching...
No Matches
read_to_string.h
Go to the documentation of this file.
1#pragma once
2
5#include "di/io/read_all.h"
6
7namespace di::io {
8namespace detail {
9 struct ReadToString {
10 constexpr auto operator()(Impl<Reader> auto& reader) const -> Result<String> {
11 auto buffer = DI_TRY(read_all(reader));
12
13 // FIXME: consider using reinterpret_cast<> when not in constexpr context.
14 return util::move(buffer) | view::transform([](auto byte) {
15 return static_cast<c8>(byte);
16 }) |
18 }
19 };
20}
21
22constexpr inline auto read_to_string = detail::ReadToString {};
23}
24
25namespace di {
27}
#define DI_TRY(...)
Definition monad_try.h:13
constexpr auto to(Con &&container, Args &&... args)
Definition to.h:25
Definition reader.h:8
Definition reader.h:7
constexpr auto read_all
Definition read_all.h:39
constexpr auto read_to_string
Definition read_to_string.h:22
std::byte byte
Definition byte.h:64
char8_t c8
Definition char.h:4
Expected< T, Error > Result
Definition result.h:8
Definition zstring_parser.h:9
Definition read_to_string.h:9
constexpr auto operator()(Impl< Reader > auto &reader) const -> Result< String >
Definition read_to_string.h:10