ReactivePlusPlus
ReactiveX implementation for C++20
Toggle main menu visibility
Loading...
Searching...
No Matches
error.hpp
1
// ReactivePlusPlus library
2
//
3
// Copyright Aleksey Loginov 2023 - present.
4
// Distributed under the Boost Software License, Version 1.0.
5
// (See accompanying file LICENSE_1_0.txt or copy at
6
// https://www.boost.org/LICENSE_1_0.txt)
7
//
8
// Project home: https://github.com/AlexInLog/ReactivePlusPlus
9
10
#pragma once
11
12
#include <rpp/sources/fwd.hpp>
13
14
#include <rpp/observables/observable.hpp>
15
16
namespace
rpp::details
17
{
18
template
<constra
int
::decayed_type Type>
19
struct
error_strategy
20
{
21
using
value_type = Type;
22
using
optimal_disposables_strategy =
rpp::details::observables::fixed_disposables_strategy<0>
;
23
24
std::exception_ptr err{};
25
26
void
subscribe(
const
auto
& obs)
const
{ obs.on_error(err); }
27
};
28
}
// namespace rpp::details
29
30
namespace
rpp
31
{
32
template
<constra
int
::decayed_type Type>
33
using
error_observable =
observable<Type, details::error_strategy<Type>
>;
34
}
// namespace rpp
35
36
namespace
rpp::source
37
{
49
* @see https://reactivex.io/documentation/operators/empty-never-throw.html
50
*/
51
template
<constra
int
::decayed_type Type>
52
auto
error
(std::exception_ptr err)
53
{
54
return
error_observable<Type>{std::move(err)};
55
}
56
}
// namespace rpp::source
rpp::observable
Base class for any observable used in RPP. It handles core callbacks of observable.
Definition
observable.hpp:38
rpp::source::error
auto error(std::exception_ptr err)
Creates rpp::observable that emits no items and terminates with an error.
Definition
error.hpp:49
rpp::details::error_strategy
Definition
error.hpp:20
rpp::details::observables::fixed_disposables_strategy
Definition
disposables_strategy.hpp:29
src
rpp
rpp
sources
error.hpp
Generated by
1.17.0