| 1485 | |
| 1486 | template <typename T, typename X> |
| 1487 | void then(lambda::CallableOnce<X(const T&)>&& f, |
| 1488 | std::unique_ptr<Promise<X>> promise, |
| 1489 | const Future<T>& future) |
| 1490 | { |
| 1491 | if (future.isReady()) { |
| 1492 | if (future.hasDiscard()) { |
| 1493 | promise->discard(); |
| 1494 | } else { |
| 1495 | promise->set(std::move(f)(future.get())); |
| 1496 | } |
| 1497 | } else if (future.isFailed()) { |
| 1498 | promise->fail(future.failure()); |
| 1499 | } else if (future.isDiscarded()) { |
| 1500 | promise->discard(); |
| 1501 | } |
| 1502 | } |
| 1503 | |
| 1504 | |
| 1505 | template <typename T> |
no test coverage detected