Iros
 
Loading...
Searching...
No Matches
string_append.h
Go to the documentation of this file.
1#pragma once
2
9
10namespace di::container::string {
11template<concepts::detail::MutableString Str, typename Enc = meta::Encoding<Str>,
12 typename P = meta::EncodingCodePoint<Enc>, concepts::ContainerCompatible<P> Con>
13constexpr auto append(Str& string, Con&& container) {
14 if constexpr (encoding::NullTerminated<Enc>) {
15 return invoke_as_fallible([&] {
17 string,
18 util::forward<Con>(container) |
21 }) >>
22 [&] {
23 return as_fallible(vector::emplace_back(string)) % [&](auto&) {
24 vector::pop_back(string);
25 };
26 } |
28 } else {
30 string, util::forward<Con>(container) |
33 }
34}
35}
Definition encoding.h:25
constexpr auto convert_to_code_units
Definition encoding.h:139
Definition constant_string_interface.h:31
constexpr auto append(Str &string, Con &&container)
Definition string_append.h:13
constexpr auto append_container(Vec &vector, Con &&container) -> R
Definition vector_append_container.h:21
constexpr auto pop_back(concepts::detail::MutableVector auto &vector)
Definition vector_pop_back.h:11
constexpr auto emplace_back(Vec &vector, Args &&... args) -> decltype(auto)
Definition vector_emplace_back.h:17
constexpr auto join
Definition join.h:30
constexpr auto transform
Definition transform.h:28
Definition sequence.h:12
constexpr auto bind_front(F &&f, Args &&... args)
Definition bind_front.h:68
constexpr auto invoke_as_fallible
Definition invoke_as_fallible.h:37
constexpr auto as_fallible
Definition as_fallible.h:26
constexpr auto try_infallible
Definition try_infallible.h:31