di 0.1.0
Loading...
Searching...
No Matches
conversion.h
Go to the documentation of this file.
1#pragma once
2
9
10namespace di::container::string {
13 auto utf8_decoder = utf8::Utf8StreamDecoder {};
14 auto result = utf8_decoder.decode(as_bytes(view.span()));
15 result.append(utf8_decoder.flush());
16 return result;
17 }
18};
19
22 auto utf8_decoder = utf8::Utf8StrictStreamDecoder {};
23 auto result = String {};
24 for (auto c : view) {
25 auto r = utf8_decoder.decode(byte(c));
26 if (!r) {
27 return {};
28 }
29 for (auto code_point : r.value()) {
30 result.push_back(code_point);
31 }
32 }
33 if (!utf8_decoder.flush()) {
34 return {};
35 }
36 return result;
37 }
38};
39
41 constexpr static auto operator()(StringView view) -> TransparentString {
42 auto result = TransparentString {};
43 for (auto byte : view.span()) {
44 result.push_back(char(byte));
45 }
46 return result;
47 }
48};
49
50constexpr inline auto to_utf8_string_lossy = ToUtf8StringLossy {};
51constexpr inline auto to_utf8_string = ToUtf8String {};
52constexpr inline auto to_transparent_string = ToTransparentString {};
53}
54
55namespace di {
59}
Definition utf8_stream_decoder.h:7
constexpr auto decode(Span< byte const > input) -> String
Definition utf8_stream_decoder.h:15
Definition utf8_strict_stream_decoder.h:7
Definition optional_forward_declaration.h:5
Definition constant_string_interface.h:31
constexpr auto to_transparent_string
Definition conversion.h:52
constexpr auto to_utf8_string_lossy
Definition conversion.h:50
constexpr auto to_utf8_string
Definition conversion.h:51
Definition adjacent.h:8
string::StringViewImpl< string::Utf8Encoding > StringView
Definition string_view.h:12
string::StringImpl< string::TransparentEncoding > TransparentString
Definition string.h:12
string::StringImpl< string::Utf8Encoding > String
Definition string.h:11
string::StringViewImpl< string::TransparentEncoding > TransparentStringView
Definition string_view.h:13
Definition any_storable.h:9
constexpr auto as_bytes
Definition as_bytes.h:16
static constexpr auto operator()(StringView view) -> TransparentString
Definition conversion.h:41
static auto operator()(TransparentStringView view) -> String
Definition conversion.h:12
Definition conversion.h:20
static auto operator()(TransparentStringView view) -> Optional< String >
Definition conversion.h:21