12 struct WriteExactlyFunction {
13 template<concepts::Impl<Writer> Writer>
16 auto nwritten =
usize { 0 };
17 while (nwritten <
data.size()) {
25 template<concepts::Impl<Writer> Writer>
31 template<concepts::Impl<Writer> Writer, concepts::detail::ConstantString T>
32 requires(concepts::SameAs<meta::Encoding<T>, container::string::Utf8Encoding>)
34 for (
auto ch :
data) {
35 DI_TRY((*
this)(writer,
char(ch)));
40 template<concepts::Impl<Writer> Writer, concepts::detail::ConstantString T>
41 requires(concepts::SameAs<meta::Encoding<T>, container::string::TransparentEncoding>)
43 for (
auto ch :
data) {
44 DI_TRY((*
this)(writer, ch));
#define DI_ASSERT(...)
Definition assert_bool.h:7
#define DI_TRY(...)
Definition monad_try.h:13
constexpr auto write_exactly
Definition write_exactly.h:51
meta::List< WriteSome, Flush, InteractiveDevice > Writer
Definition writer.h:85
constexpr auto write_some
Definition writer.h:81
std::byte byte
Definition byte.h:64
size_t usize
Definition integers.h:33
Span(Iter, SentOrSize) -> Span< meta::RemoveReference< meta::IteratorReference< Iter > > >
Definition any_storable.h:9
constexpr auto data
Definition data.h:51