Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports-kde
Path: blob/main/databases/cutelyst-asql/files/patch-src_acoroexpected.h
16461 views
1
--- src/acoroexpected.h.orig 2024-11-11 20:32:28 UTC
2
+++ src/acoroexpected.h
3
@@ -3,6 +3,9 @@
4
#include <adatabase.h>
5
#include <aresult.h>
6
#include <asqlexports.h>
7
+#include <atransaction.h>
8
+
9
+#include <concepts>
10
#include <coroutine>
11
#include <expected>
12
13
@@ -34,7 +37,7 @@ class ASQL_EXPORT ACoroExpected (public)
14
15
std::expected<T, QString> await_resume() { return m_result; }
16
17
- ACoroExpected(QObject *receiver)
18
+ ACoroExpected(QObject *receiver) requires (std::same_as<T, ATransaction>)
19
: m_receiver(receiver)
20
, m_result{std::unexpected(QString{})}
21
{
22
@@ -42,11 +45,24 @@ class ASQL_EXPORT ACoroExpected (public)
23
if (result.error()) {
24
m_result = std::unexpected(result.errorString());
25
} else {
26
- if constexpr (std::is_same_v<T, ATransaction>) {
27
- m_result = ATransaction(database, true);
28
- } else {
29
- m_result = result;
30
- }
31
+ m_result = ATransaction(database, true);
32
+ }
33
+
34
+ if (m_handle) {
35
+ m_handle.resume();
36
+ }
37
+ };
38
+ }
39
+
40
+ ACoroExpected(QObject *receiver) requires (!std::same_as<T, ATransaction>)
41
+ : m_receiver(receiver)
42
+ , m_result{std::unexpected(QString{})}
43
+ {
44
+ callback = [this](AResult &result) {
45
+ if (result.error()) {
46
+ m_result = std::unexpected(result.errorString());
47
+ } else {
48
+ m_result = result;
49
}
50
51
if (m_handle) {
52
53