Iros
 
Loading...
Searching...
No Matches
string_writer.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/meta/core.h"
7#include "di/meta/vocab.h"
8#include "di/util/declval.h"
10
11namespace di::io {
12template<concepts::detail::MutableString T = container::String>
13requires(concepts::SameAs<meta::Encoding<T>, container::string::Utf8Encoding>)
15public:
18 for (auto byte : data) {
19 m_output.push_back(c32(byte));
20 }
21 return data.size();
22 }
23
24 constexpr auto flush() -> vocab::Result<void> { return {}; }
25
26 constexpr auto output() && -> T { return util::move(m_output); }
27
28private:
29 T m_output;
30};
31}
32
33namespace di {
34using io::StringWriter;
35}
Definition string_writer.h:14
constexpr auto output() &&-> T
Definition string_writer.h:26
constexpr auto write_some(vocab::Span< byte const > data) -> meta::LikeExpected< decltype(util::declval< T & >().push_back(c32(0))), usize >
Definition string_writer.h:16
constexpr auto flush() -> vocab::Result< void >
Definition string_writer.h:24
Definition span_forward_declaration.h:10
Definition reader.h:7
Type< detail::LikeExpectedHelper< T, U > > LikeExpected
Definition vocab.h:60
size_t usize
Definition integers.h:33
char32_t c32
Definition char.h:6
Expected< T, Error > Result
Definition result.h:8
Definition zstring_parser.h:9
constexpr auto data
Definition data.h:51