Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (c) 2021, Ali Mohammad Pur <mpfard@serenityos.org> |
3 | | * |
4 | | * SPDX-License-Identifier: BSD-2-Clause |
5 | | */ |
6 | | |
7 | | #pragma once |
8 | | |
9 | | #include <AK/StdLibExtras.h> |
10 | | #include <AK/TypeList.h> |
11 | | |
12 | | namespace AK::Detail { |
13 | | |
14 | | template<typename... Ts> |
15 | | struct Tuple { |
16 | | }; |
17 | | |
18 | | template<typename T> |
19 | | struct Tuple<T> { |
20 | | Tuple(T&& value) |
21 | | requires(!IsSame < T &&, T const& >) |
22 | 1.52M | : value(forward<T>(value)) |
23 | 1.52M | { |
24 | 1.52M | } _ZN2AK6Detail5TupleIJN4IMAP17FetchResponseDataEEEC2EOS3_Qnt6IsSameIOT_RKS6_E Line | Count | Source | 22 | 1.51M | : value(forward<T>(value)) | 23 | 1.51M | { | 24 | 1.51M | } |
Unexecuted instantiation: _ZN2AK6Detail5TupleIJNS_13NonnullOwnPtrIN4IMAP13BodyStructureEEEEEC2EOS5_Qnt6IsSameIOT_RKS8_E _ZN2AK6Detail5TupleIJNS_10ByteStringEEEC2EOS2_Qnt6IsSameIOT_RKS5_E Line | Count | Source | 22 | 15.3k | : value(forward<T>(value)) | 23 | 15.3k | { | 24 | 15.3k | } |
_ZN2AK6Detail5TupleIJNS_7HashMapINS_10ByteStringES3_NS_6TraitsIS3_EES5_Lb0EEEEEC2EOS6_Qnt6IsSameIOT_RKS9_E Line | Count | Source | 22 | 1.39k | : value(forward<T>(value)) | 23 | 1.39k | { | 24 | 1.39k | } |
Unexecuted instantiation: _ZN2AK6Detail5TupleIJNS_8OptionalIRmEEEEC2EOS4_Qnt6IsSameIOT_RKS7_E |
25 | | |
26 | | Tuple(T const& value) |
27 | | : value(value) |
28 | | { |
29 | | } |
30 | | |
31 | | template<typename U> |
32 | | U& get() |
33 | | { |
34 | | static_assert(IsSame<T, U>, "Invalid tuple access"); |
35 | | return value; |
36 | | } |
37 | | |
38 | | template<typename U> |
39 | | U const& get() const |
40 | | { |
41 | | return const_cast<Tuple<T>&>(*this).get<U>(); |
42 | | } |
43 | | |
44 | | template<typename U, size_t index> |
45 | | U& get_with_index() |
46 | 1.27M | { |
47 | 1.27M | static_assert(IsSame<T, U> && index == 0, "Invalid tuple access"); |
48 | 1.27M | return value; |
49 | 1.27M | } Unexecuted instantiation: AK::NonnullOwnPtr<IMAP::BodyStructure>& AK::Detail::Tuple<AK::NonnullOwnPtr<IMAP::BodyStructure> >::get_with_index<AK::NonnullOwnPtr<IMAP::BodyStructure>, 0ul>() AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false>& AK::Detail::Tuple<AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::get_with_index<AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false>, 0ul>() Line | Count | Source | 46 | 1.27k | { | 47 | 1.27k | static_assert(IsSame<T, U> && index == 0, "Invalid tuple access"); | 48 | 1.27k | return value; | 49 | 1.27k | } |
AK::ByteString& AK::Detail::Tuple<AK::ByteString>::get_with_index<AK::ByteString, 0ul>() Line | Count | Source | 46 | 7.69k | { | 47 | 7.69k | static_assert(IsSame<T, U> && index == 0, "Invalid tuple access"); | 48 | 7.69k | return value; | 49 | 7.69k | } |
IMAP::FetchResponseData& AK::Detail::Tuple<IMAP::FetchResponseData>::get_with_index<IMAP::FetchResponseData, 0ul>() Line | Count | Source | 46 | 1.26M | { | 47 | 1.26M | static_assert(IsSame<T, U> && index == 0, "Invalid tuple access"); | 48 | 1.26M | return value; | 49 | 1.26M | } |
Unexecuted instantiation: AK::Optional<unsigned long&>& AK::Detail::Tuple<AK::Optional<unsigned long&> >::get_with_index<AK::Optional<unsigned long&>, 0ul>() Unexecuted instantiation: char const*& AK::Detail::Tuple<char const*>::get_with_index<char const*, 0ul>() |
50 | | |
51 | | template<typename U, size_t index> |
52 | | U const& get_with_index() const |
53 | | { |
54 | | return const_cast<Tuple<T>&>(*this).get_with_index<U, index>(); |
55 | | } |
56 | | |
57 | | private: |
58 | | T value; |
59 | | }; |
60 | | |
61 | | template<typename T, typename... TRest> |
62 | | struct Tuple<T, TRest...> : Tuple<TRest...> { |
63 | | |
64 | | template<typename FirstT, typename... RestT> |
65 | | Tuple(FirstT&& first, RestT&&... rest) |
66 | 116 | : Tuple<TRest...>(forward<RestT>(rest)...) |
67 | 116 | , value(forward<FirstT>(first)) |
68 | 116 | { |
69 | 116 | } |
70 | | |
71 | | Tuple(T&& first, TRest&&... rest) |
72 | 1.52M | : Tuple<TRest...>(move(rest)...) |
73 | 1.51M | , value(move(first)) |
74 | 1.52M | { |
75 | 1.52M | } AK::Detail::Tuple<unsigned int, IMAP::FetchResponseData>::Tuple(unsigned int&&, IMAP::FetchResponseData&&) Line | Count | Source | 72 | 1.51M | : Tuple<TRest...>(move(rest)...) | 73 | 1.51M | , value(move(first)) | 74 | 1.51M | { | 75 | 1.51M | } |
Unexecuted instantiation: AK::Detail::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::Tuple(IMAP::Envelope&&, AK::NonnullOwnPtr<IMAP::BodyStructure>&&) AK::Detail::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>::Tuple(IMAP::FetchCommand::DataItem&&, AK::ByteString&&) Line | Count | Source | 72 | 15.3k | : Tuple<TRest...>(move(rest)...) | 73 | 15.3k | , value(move(first)) | 74 | 15.3k | { | 75 | 15.3k | } |
AK::Detail::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::Tuple(AK::ByteString&&, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false>&&) Line | Count | Source | 72 | 1.27k | : Tuple<TRest...>(move(rest)...) | 73 | 1.27k | , value(move(first)) | 74 | 1.27k | { | 75 | 1.27k | } |
Unexecuted instantiation: AK::Detail::Tuple<AK::Optional<unsigned long&>, AK::Optional<unsigned long&> >::Tuple(AK::Optional<unsigned long&>&&, AK::Optional<unsigned long&>&&) |
76 | | |
77 | | template<typename U> |
78 | | U& get() |
79 | | { |
80 | | if constexpr (IsSame<T, U>) |
81 | | return value; |
82 | | else |
83 | | return Tuple<TRest...>::template get<U>(); |
84 | | } |
85 | | |
86 | | template<typename U> |
87 | | U const& get() const |
88 | | { |
89 | | return const_cast<Tuple<T, TRest...>&>(*this).get<U>(); |
90 | | } |
91 | | |
92 | | template<typename U, size_t index> |
93 | | U& get_with_index() |
94 | 2.54M | { |
95 | | if constexpr (IsSame<T, U> && index == 0) |
96 | 1.27M | return value; |
97 | | else |
98 | 1.27M | return Tuple<TRest...>::template get_with_index<U, index - 1>(); |
99 | 2.54M | } Unexecuted instantiation: IMAP::Envelope& AK::Detail::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::get_with_index<IMAP::Envelope, 0ul>() Unexecuted instantiation: AK::NonnullOwnPtr<IMAP::BodyStructure>& AK::Detail::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::get_with_index<AK::NonnullOwnPtr<IMAP::BodyStructure>, 1ul>() AK::ByteString& AK::Detail::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::get_with_index<AK::ByteString, 0ul>() Line | Count | Source | 94 | 1.27k | { | 95 | | if constexpr (IsSame<T, U> && index == 0) | 96 | 1.27k | return value; | 97 | | else | 98 | | return Tuple<TRest...>::template get_with_index<U, index - 1>(); | 99 | 1.27k | } |
AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false>& AK::Detail::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::get_with_index<AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false>, 1ul>() Line | Count | Source | 94 | 1.27k | { | 95 | | if constexpr (IsSame<T, U> && index == 0) | 96 | | return value; | 97 | | else | 98 | 1.27k | return Tuple<TRest...>::template get_with_index<U, index - 1>(); | 99 | 1.27k | } |
IMAP::FetchCommand::DataItem& AK::Detail::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>::get_with_index<IMAP::FetchCommand::DataItem, 0ul>() Line | Count | Source | 94 | 7.69k | { | 95 | | if constexpr (IsSame<T, U> && index == 0) | 96 | 7.69k | return value; | 97 | | else | 98 | | return Tuple<TRest...>::template get_with_index<U, index - 1>(); | 99 | 7.69k | } |
AK::ByteString& AK::Detail::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>::get_with_index<AK::ByteString, 1ul>() Line | Count | Source | 94 | 7.69k | { | 95 | | if constexpr (IsSame<T, U> && index == 0) | 96 | | return value; | 97 | | else | 98 | 7.69k | return Tuple<TRest...>::template get_with_index<U, index - 1>(); | 99 | 7.69k | } |
unsigned int& AK::Detail::Tuple<unsigned int, IMAP::FetchResponseData>::get_with_index<unsigned int, 0ul>() Line | Count | Source | 94 | 1.26M | { | 95 | | if constexpr (IsSame<T, U> && index == 0) | 96 | 1.26M | return value; | 97 | | else | 98 | | return Tuple<TRest...>::template get_with_index<U, index - 1>(); | 99 | 1.26M | } |
IMAP::FetchResponseData& AK::Detail::Tuple<unsigned int, IMAP::FetchResponseData>::get_with_index<IMAP::FetchResponseData, 1ul>() Line | Count | Source | 94 | 1.26M | { | 95 | | if constexpr (IsSame<T, U> && index == 0) | 96 | | return value; | 97 | | else | 98 | 1.26M | return Tuple<TRest...>::template get_with_index<U, index - 1>(); | 99 | 1.26M | } |
Unexecuted instantiation: AK::Optional<unsigned long&>& AK::Detail::Tuple<AK::Optional<unsigned long&>, AK::Optional<unsigned long&> >::get_with_index<AK::Optional<unsigned long&>, 0ul>() Unexecuted instantiation: AK::Optional<unsigned long&>& AK::Detail::Tuple<AK::Optional<unsigned long&>, AK::Optional<unsigned long&> >::get_with_index<AK::Optional<unsigned long&>, 1ul>() |
100 | | |
101 | | template<typename U, size_t index> |
102 | | U const& get_with_index() const |
103 | | { |
104 | | return const_cast<Tuple<T, TRest...>&>(*this).get_with_index<U, index>(); |
105 | | } |
106 | | |
107 | | private: |
108 | | T value; |
109 | | }; |
110 | | |
111 | | } |
112 | | |
113 | | namespace AK { |
114 | | |
115 | | template<typename... Ts> |
116 | | struct Tuple : Detail::Tuple<Ts...> { |
117 | | using Types = TypeList<Ts...>; |
118 | | using Detail::Tuple<Ts...>::Tuple; |
119 | | using Indices = MakeIndexSequence<sizeof...(Ts)>; |
120 | | |
121 | | Tuple(Tuple&& other) |
122 | 1.27M | : Tuple(move(other), Indices()) |
123 | 1.27M | { |
124 | 1.27M | } AK::Tuple<unsigned int, IMAP::FetchResponseData>::Tuple(AK::Tuple<unsigned int, IMAP::FetchResponseData>&&) Line | Count | Source | 122 | 1.26M | : Tuple(move(other), Indices()) | 123 | 1.26M | { | 124 | 1.26M | } |
Unexecuted instantiation: AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::Tuple(AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >&&) AK::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>::Tuple(AK::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>&&) Line | Count | Source | 122 | 7.69k | : Tuple(move(other), Indices()) | 123 | 7.69k | { | 124 | 7.69k | } |
AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::Tuple(AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >&&) Line | Count | Source | 122 | 1.27k | : Tuple(move(other), Indices()) | 123 | 1.27k | { | 124 | 1.27k | } |
|
125 | | |
126 | | Tuple(Tuple const& other) |
127 | | : Tuple(other, Indices()) |
128 | | { |
129 | | } |
130 | | |
131 | | Tuple& operator=(Tuple&& other) |
132 | 0 | { |
133 | 0 | set(move(other), Indices()); |
134 | 0 | return *this; |
135 | 0 | } Unexecuted instantiation: AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::operator=(AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >&&) Unexecuted instantiation: AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::operator=(AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >&&) |
136 | | |
137 | | Tuple& operator=(Tuple const& other) |
138 | | { |
139 | | set(other, Indices()); |
140 | | return *this; |
141 | | } |
142 | | |
143 | | template<typename T> |
144 | | auto& get() |
145 | | { |
146 | | return Detail::Tuple<Ts...>::template get<T>(); |
147 | | } |
148 | | |
149 | | template<size_t index> |
150 | | auto& get() |
151 | 2.54M | { |
152 | 2.54M | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); |
153 | 2.54M | } Unexecuted instantiation: auto& AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::get<0ul>() Unexecuted instantiation: auto& AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::get<1ul>() auto& AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::get<0ul>() Line | Count | Source | 151 | 1.27k | { | 152 | 1.27k | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); | 153 | 1.27k | } |
auto& AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::get<1ul>() Line | Count | Source | 151 | 1.27k | { | 152 | 1.27k | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); | 153 | 1.27k | } |
auto& AK::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>::get<0ul>() Line | Count | Source | 151 | 7.69k | { | 152 | 7.69k | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); | 153 | 7.69k | } |
auto& AK::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>::get<1ul>() Line | Count | Source | 151 | 7.69k | { | 152 | 7.69k | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); | 153 | 7.69k | } |
auto& AK::Tuple<unsigned int, IMAP::FetchResponseData>::get<0ul>() Line | Count | Source | 151 | 1.26M | { | 152 | 1.26M | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); | 153 | 1.26M | } |
auto& AK::Tuple<unsigned int, IMAP::FetchResponseData>::get<1ul>() Line | Count | Source | 151 | 1.26M | { | 152 | 1.26M | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); | 153 | 1.26M | } |
Unexecuted instantiation: auto& AK::Tuple<AK::Optional<unsigned long&>, AK::Optional<unsigned long&> >::get<0ul>() Unexecuted instantiation: auto& AK::Tuple<AK::Optional<unsigned long&>, AK::Optional<unsigned long&> >::get<1ul>() Unexecuted instantiation: auto& AK::Tuple<char const*>::get<0ul>() |
154 | | |
155 | | template<typename T> |
156 | | auto& get() const |
157 | | { |
158 | | return Detail::Tuple<Ts...>::template get<T>(); |
159 | | } |
160 | | |
161 | | template<size_t index> |
162 | | auto& get() const |
163 | | { |
164 | | return Detail::Tuple<Ts...>::template get_with_index<typename Types::template Type<index>, index>(); |
165 | | } |
166 | | |
167 | | template<typename F> |
168 | | auto apply_as_args(F&& f) |
169 | 0 | { |
170 | 0 | return apply_as_args(forward<F>(f), Indices()); |
171 | 0 | } Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJNS_8OptionalIRmEES3_EE13apply_as_argsIZZN5ShellL9do_escapeIJmmENS_10ByteStringEEES8_NS6_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySF_E_EEDaOT_ Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJEE13apply_as_argsIZZN5ShellL9do_escapeIJENS_9Utf32ViewEEENS_10ByteStringENS3_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySD_E_EEDaOT_ Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJEE13apply_as_argsIZZN5ShellL9do_escapeIJENS_8Utf8ViewEEENS_10ByteStringENS3_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySD_E_EEDaOT_ Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJEE13apply_as_argsIZZN5ShellL9do_escapeIJENS_10StringViewEEENS_10ByteStringENS3_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySD_E_EEDaOT_ Unexecuted instantiation: _ZN2AK5TupleIJPKcEE13apply_as_argsIZN4Wasm9Validator6Errors19invalid_stack_stateIJS2_EEENS5_15ValidationErrorERKNS6_5StackENS0_IJDpT_EEENS_14SourceLocationEEUlTpTyDpRKSD_E_EEDaOT_ |
172 | | |
173 | | template<typename F> |
174 | | auto apply_as_args(F&& f) const |
175 | | { |
176 | | return apply_as_args(forward<F>(f), Indices()); |
177 | | } |
178 | | |
179 | 0 | static constexpr auto size() { return sizeof...(Ts); } |
180 | | |
181 | | private: |
182 | | template<size_t... Is> |
183 | | Tuple(Tuple&& other, IndexSequence<Is...>) |
184 | 1.27M | : Detail::Tuple<Ts...>(move(other.get<Is>())...) |
185 | 1.27M | { |
186 | 1.27M | } AK::Tuple<unsigned int, IMAP::FetchResponseData>::Tuple<0ul, 1ul>(AK::Tuple<unsigned int, IMAP::FetchResponseData>&&, AK::Detail::IntegerSequence<unsigned long, 0ul, 1ul>) Line | Count | Source | 184 | 1.26M | : Detail::Tuple<Ts...>(move(other.get<Is>())...) | 185 | 1.26M | { | 186 | 1.26M | } |
Unexecuted instantiation: AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::Tuple<0ul, 1ul>(AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >&&, AK::Detail::IntegerSequence<unsigned long, 0ul, 1ul>) AK::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>::Tuple<0ul, 1ul>(AK::Tuple<IMAP::FetchCommand::DataItem, AK::ByteString>&&, AK::Detail::IntegerSequence<unsigned long, 0ul, 1ul>) Line | Count | Source | 184 | 7.69k | : Detail::Tuple<Ts...>(move(other.get<Is>())...) | 185 | 7.69k | { | 186 | 7.69k | } |
AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::Tuple<0ul, 1ul>(AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >&&, AK::Detail::IntegerSequence<unsigned long, 0ul, 1ul>) Line | Count | Source | 184 | 1.27k | : Detail::Tuple<Ts...>(move(other.get<Is>())...) | 185 | 1.27k | { | 186 | 1.27k | } |
|
187 | | |
188 | | template<size_t... Is> |
189 | | Tuple(Tuple const& other, IndexSequence<Is...>) |
190 | | : Detail::Tuple<Ts...>(other.get<Is>()...) |
191 | | { |
192 | | } |
193 | | |
194 | | template<size_t... Is> |
195 | | void set(Tuple&& other, IndexSequence<Is...>) |
196 | 0 | { |
197 | 0 | ((get<Is>() = move(other.get<Is>())), ...); |
198 | 0 | } Unexecuted instantiation: void AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >::set<0ul, 1ul>(AK::Tuple<AK::ByteString, AK::HashMap<AK::ByteString, AK::ByteString, AK::Traits<AK::ByteString>, AK::Traits<AK::ByteString>, false> >&&, AK::Detail::IntegerSequence<unsigned long, 0ul, 1ul>) Unexecuted instantiation: void AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >::set<0ul, 1ul>(AK::Tuple<IMAP::Envelope, AK::NonnullOwnPtr<IMAP::BodyStructure> >&&, AK::Detail::IntegerSequence<unsigned long, 0ul, 1ul>) |
199 | | |
200 | | template<size_t... Is> |
201 | | void set(Tuple const& other, IndexSequence<Is...>) |
202 | | { |
203 | | ((get<Is>() = other.get<Is>()), ...); |
204 | | } |
205 | | |
206 | | template<typename F, size_t... Is> |
207 | | auto apply_as_args(F&& f, IndexSequence<Is...>) |
208 | 0 | { |
209 | 0 | return forward<F>(f)(get<Is>()...); |
210 | 0 | } Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJNS_8OptionalIRmEES3_EE13apply_as_argsIZZN5ShellL9do_escapeIJmmENS_10ByteStringEEES8_NS6_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySF_E_JLm0ELm1EEEEDaOT_NS_6Detail15IntegerSequenceImJXspT0_EEEE Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJEE13apply_as_argsIZZN5ShellL9do_escapeIJENS_9Utf32ViewEEENS_10ByteStringENS3_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySD_E_TpTnmJEEEDaOT_NS_6Detail15IntegerSequenceImJXspT0_EEEE Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJEE13apply_as_argsIZZN5ShellL9do_escapeIJENS_8Utf8ViewEEENS_10ByteStringENS3_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySD_E_TpTnmJEEEDaOT_NS_6Detail15IntegerSequenceImJXspT0_EEEE Unexecuted instantiation: Shell.cpp:_ZN2AK5TupleIJEE13apply_as_argsIZZN5ShellL9do_escapeIJENS_10StringViewEEENS_10ByteStringENS3_5Shell10EscapeModeERT0_DpRT_ENKUlvE_clEvEUlTpTySD_E_TpTnmJEEEDaOT_NS_6Detail15IntegerSequenceImJXspT0_EEEE Unexecuted instantiation: _ZN2AK5TupleIJPKcEE13apply_as_argsIZN4Wasm9Validator6Errors19invalid_stack_stateIJS2_EEENS5_15ValidationErrorERKNS6_5StackENS0_IJDpT_EEENS_14SourceLocationEEUlTpTyDpRKSD_E_JLm0EEEEDaOT_NS_6Detail15IntegerSequenceImJXspT0_EEEE |
211 | | |
212 | | template<typename F, size_t... Is> |
213 | | auto apply_as_args(F&& f, IndexSequence<Is...>) const |
214 | | { |
215 | | return forward<F>(f)(get<Is>()...); |
216 | | } |
217 | | }; |
218 | | |
219 | | template<class... Args> |
220 | | Tuple(Args... args) -> Tuple<Args...>; |
221 | | |
222 | | } |
223 | | |
224 | | #if USING_AK_GLOBALLY |
225 | | using AK::Tuple; |
226 | | #endif |