Skip to content

Commit

Permalink
Update pre-commit (#551)
Browse files Browse the repository at this point in the history
* Update pre-commit

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
victimsnino and pre-commit-ci[bot] authored Apr 1, 2024
1 parent 6def295 commit 141cdfe
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 18 deletions.
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ PointerAlignment: Left
QualifierAlignment: Leave
ReferenceAlignment: Pointer
RemoveBracesLLVM: false
RemoveSemicolon: true
# RemoveSemicolon: true
ReflowComments: true
RequiresClausePosition: OwnLine
SeparateDefinitionBlocks: Leave
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/sirosen/check-jsonschema
rev: 0.28.0
rev: 0.28.1
hooks:
- id: check-github-actions
- id: check-github-workflows
Expand All @@ -17,7 +17,7 @@ repos:
- id: check-added-large-files

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: 'v17.0.6'
rev: 'v18.1.2'
hooks:
- id: clang-format
args: ["-style=file", "-i"]
Expand Down
6 changes: 3 additions & 3 deletions src/rpp/rpp/observables/connectable_observable.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ namespace rpp
{
}

connectable_observable(OriginalObservable&& original_observable, const Subject& subject = Subject{})
connectable_observable(OriginalObservable && original_observable, const Subject& subject = Subject{})
: base{subject.get_observable()}
, m_original_observable{std::move(original_observable)}
, m_subject{subject}
Expand Down Expand Up @@ -137,7 +137,7 @@ namespace rpp
}

template<rpp::constraint::operator_observable_transform<connectable_observable&&> Op>
auto operator|(Op&& op) &&
auto operator|(Op&& op)&&
{
return std::forward<Op>(op)(std::move(*this));
}
Expand All @@ -149,7 +149,7 @@ namespace rpp
}

template<typename Op>
decltype(std::declval<base>() | std::declval<Op>()) operator|(Op&& op) &&
decltype(std::declval<base>() | std::declval<Op>()) operator|(Op&& op)&&
{
return static_cast<base&&>(*this) | std::forward<Op>(op);
}
Expand Down
2 changes: 1 addition & 1 deletion src/rpp/rpp/operators/subscribe.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ namespace rpp::operators::details
subscribe_t(const Args&...) -> subscribe_t<Args...>;

template<typename OnNext>
concept on_next_like = (!rpp::utils::is_not_template_callable<OnNext> || std::invocable<OnNext, rpp::utils::convertible_to_any>)&&(!rpp::constraint::decayed_same_as<OnNext, rpp::composite_disposable_wrapper> && !rpp::constraint::observer_strategy_base<OnNext> && !rpp::constraint::observer<OnNext>);
concept on_next_like = (!rpp::utils::is_not_template_callable<OnNext> || std::invocable<OnNext, rpp::utils::convertible_to_any>) && (!rpp::constraint::decayed_same_as<OnNext, rpp::composite_disposable_wrapper> && !rpp::constraint::observer_strategy_base<OnNext> && !rpp::constraint::observer<OnNext>);
} // namespace rpp::operators::details

namespace rpp::operators
Expand Down
2 changes: 1 addition & 1 deletion src/rpp/rpp/schedulers/fwd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ namespace rpp::schedulers::constraint
};

template<typename S>
concept strategy = (defer_for_strategy<S> || defer_to_strategy<S>)&&requires(const S& s, const details::fake_schedulable_handler& handler) {
concept strategy = (defer_for_strategy<S> || defer_to_strategy<S>) && requires(const S& s, const details::fake_schedulable_handler& handler) {
{
s.get_disposable()
} -> rpp::constraint::any_of<rpp::disposable_wrapper, details::none_disposable>;
Expand Down
12 changes: 2 additions & 10 deletions src/tests/rpp/test_subscribe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,23 +101,15 @@ TEMPLATE_TEST_CASE("subscribe as operator", "", rpp::memory_model::use_stack, rp
SECTION("subscribe lambdas with disposable")
{
static_assert(std::is_same_v<decltype(observable | rpp::operators::subscribe(rpp::composite_disposable_wrapper::make(), rpp::utils::empty_function_t<int>{}, rpp::utils::empty_function_t<std::exception_ptr>{}, rpp::utils::empty_function_t<>{})), rpp::composite_disposable_wrapper>);
auto d = observable | rpp::operators::subscribe(
rpp::composite_disposable_wrapper::make(),
[&mock](const auto& v) { mock.on_next(v); },
rpp::utils::empty_function_t<std::exception_ptr>{},
rpp::utils::empty_function_t<>{});
auto d = observable | rpp::operators::subscribe(rpp::composite_disposable_wrapper::make(), [&mock](const auto& v) { mock.on_next(v); }, rpp::utils::empty_function_t<std::exception_ptr>{}, rpp::utils::empty_function_t<>{});
CHECK(d.is_disposed());
CHECK(mock.get_received_values() == std::vector{1});
}

SECTION("subscribe lambdas with disposed disposable")
{
static_assert(std::is_same_v<decltype(observable | rpp::operators::subscribe(rpp::composite_disposable_wrapper::empty(), rpp::utils::empty_function_t<int>{}, rpp::utils::empty_function_t<std::exception_ptr>{}, rpp::utils::empty_function_t<>{})), rpp::composite_disposable_wrapper>);
auto d = observable | rpp::operators::subscribe(
rpp::composite_disposable_wrapper::empty(),
[&mock](const auto& v) { mock.on_next(v); },
rpp::utils::empty_function_t<std::exception_ptr>{},
rpp::utils::empty_function_t<>{});
auto d = observable | rpp::operators::subscribe(rpp::composite_disposable_wrapper::empty(), [&mock](const auto& v) { mock.on_next(v); }, rpp::utils::empty_function_t<std::exception_ptr>{}, rpp::utils::empty_function_t<>{});
CHECK(d.is_disposed());
CHECK(mock.get_received_values().empty());
}
Expand Down

1 comment on commit 141cdfe

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 313.97 ns 2.21 ns 2.16 ns 1.02
Subscribe empty callbacks to empty observable via pipe operator 313.32 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 705.93 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1053.26 ns 5.26 ns 5.25 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2223.05 ns 113.99 ns 114.36 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 752.55 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2132.83 ns 59.23 ns 59.23 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3071.52 ns 32.72 ns 32.73 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1093.47 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 858.78 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 996.23 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 889.74 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1231.63 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 919.19 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1121.35 ns 18.82 ns 18.82 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 279.99 ns 2.16 ns 2.16 ns 1.00
current_thread scheduler create worker + schedule 378.46 ns 7.10 ns 7.10 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 837.34 ns 64.09 ns 65.96 ns 0.97

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 845.39 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 901.08 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2393.58 ns 160.00 ns 159.85 ns 1.00
immediate_just+buffer(2)+subscribe 1548.81 ns 14.51 ns 14.52 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2340.05 ns 1080.52 ns 1060.98 ns 1.02

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 869.21 ns - - 0.00
immediate_just+take_while(true)+subscribe 845.42 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1991.33 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3437.76 ns 189.41 ns 179.65 ns 1.05
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3722.55 ns 186.11 ns 177.68 ns 1.05
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 135.52 ns 137.86 ns 0.98
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3572.55 ns 988.70 ns 1152.28 ns 0.86
immediate_just(1) + zip(immediate_just(2)) + subscribe 2098.13 ns 226.26 ns 218.61 ns 1.04

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.52 ns 12.02 ns 11.72 ns 1.03

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1469.36 ns 14.50 ns 14.51 ns 1.00
basic sample with immediate scheduler 1338.97 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 918.25 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1037.08 ns 122.21 ns 123.76 ns 0.99

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 983.21 ns 3.87 ns 4.49 ns 0.86
Subscribe empty callbacks to empty observable via pipe operator 981.19 ns 3.84 ns 4.60 ns 0.83

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1936.14 ns 0.23 ns 0.27 ns 0.85
from array of 1 - create + subscribe + current_thread 2458.76 ns 25.41 ns 29.45 ns 0.86
concat_as_source of just(1 immediate) create + subscribe 5467.29 ns 332.77 ns 353.52 ns 0.94
defer from array of 1 - defer + create + subscribe + immediate 1976.05 ns 0.23 ns 0.27 ns 0.88
interval - interval + take(3) + subscribe + immediate 4980.07 ns 113.78 ns 129.58 ns 0.88
interval - interval + take(3) + subscribe + current_thread 5928.23 ns 104.88 ns 142.19 ns 0.74

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2809.51 ns 0.23 ns 0.34 ns 0.67
immediate_just+filter(true)+subscribe 2069.21 ns 0.23 ns 0.27 ns 0.83
immediate_just(1,2)+skip(1)+subscribe 2684.36 ns 0.23 ns 0.55 ns 0.42
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1993.93 ns 0.45 ns 0.65 ns 0.69
immediate_just(1,2)+first()+subscribe 3114.43 ns 0.23 ns 0.29 ns 0.79
immediate_just(1,2)+last()+subscribe 2334.64 ns 0.23 ns 0.35 ns 0.65
immediate_just+take_last(1)+subscribe 2956.67 ns 70.02 ns 83.15 ns 0.84

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 813.23 ns 3.84 ns 4.84 ns 0.79
current_thread scheduler create worker + schedule 1146.24 ns 36.74 ns 44.39 ns 0.83
current_thread scheduler create worker + schedule + recursive schedule 1942.85 ns 211.34 ns 254.83 ns 0.83

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2062.73 ns 0.23 ns 0.28 ns 0.80
immediate_just+scan(10, std::plus)+subscribe 2294.28 ns 0.46 ns 0.58 ns 0.78
immediate_just+flat_map(immediate_just(v*2))+subscribe 5276.29 ns 405.53 ns 517.47 ns 0.78
immediate_just+buffer(2)+subscribe 2445.19 ns 69.18 ns 105.30 ns 0.66
immediate_just+window(2)+subscribe + subscsribe inner 5225.82 ns 2226.80 ns 2720.89 ns 0.82

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2056.77 ns - - 0.00
immediate_just+take_while(true)+subscribe 2064.33 ns 0.23 ns 0.29 ns 0.78

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4688.04 ns 0.22 ns 0.30 ns 0.75

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 7449.92 ns 440.71 ns 560.80 ns 0.79
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 8235.21 ns 436.51 ns 552.64 ns 0.79
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 463.12 ns 570.97 ns 0.81
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 7798.20 ns 1860.13 ns 2253.79 ns 0.83
immediate_just(1) + zip(immediate_just(2)) + subscribe 5071.78 ns 838.81 ns 1015.14 ns 0.83

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 73.43 ns 48.35 ns 56.52 ns 0.86

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 2712.81 ns 106.79 ns 127.76 ns 0.84
basic sample with immediate scheduler 2724.34 ns 14.72 ns 20.44 ns 0.72

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2274.52 ns 0.23 ns 0.27 ns 0.84

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 6329.89 ns 3898.25 ns 5638.36 ns 0.69

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 278.45 ns 1.54 ns 0.88 ns 1.76
Subscribe empty callbacks to empty observable via pipe operator 282.59 ns 1.54 ns 0.88 ns 1.76

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 574.10 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 788.53 ns 5.55 ns 5.55 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1917.46 ns 112.47 ns 115.37 ns 0.97
defer from array of 1 - defer + create + subscribe + immediate 601.19 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1550.04 ns 58.31 ns 58.31 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2100.40 ns 31.47 ns 31.47 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 917.17 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 663.30 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 867.35 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 704.58 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1139.11 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 784.42 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 984.73 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 210.11 ns 1.54 ns 0.88 ns 1.76
current_thread scheduler create worker + schedule 317.22 ns 5.57 ns 5.89 ns 0.95
current_thread scheduler create worker + schedule + recursive schedule 638.09 ns 59.54 ns 59.17 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 658.37 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 708.45 ns 0.32 ns 0.31 ns 1.04
immediate_just+flat_map(immediate_just(v*2))+subscribe 1828.33 ns 119.96 ns 119.26 ns 1.01
immediate_just+buffer(2)+subscribe 1363.81 ns 14.80 ns 13.88 ns 1.07
immediate_just+window(2)+subscribe + subscsribe inner 2187.80 ns 830.10 ns 790.68 ns 1.05

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 659.53 ns - - 0.00
immediate_just+take_while(true)+subscribe 669.99 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1618.83 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2538.89 ns 125.15 ns 125.84 ns 0.99
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3038.08 ns 121.52 ns 121.50 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 111.02 ns 110.66 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2662.01 ns 799.45 ns 727.74 ns 1.10
immediate_just(1) + zip(immediate_just(2)) + subscribe 1775.15 ns 170.46 ns 164.83 ns 1.03

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 24.09 ns 14.19 ns 13.87 ns 1.02

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1053.81 ns 13.27 ns 13.28 ns 1.00
basic sample with immediate scheduler 1023.12 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 779.27 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 860.12 ns 124.75 ns 126.38 ns 0.99

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 818.05 ns 4.94 ns 4.02 ns 1.23
Subscribe empty callbacks to empty observable via pipe operator 804.19 ns 4.94 ns 4.01 ns 1.23

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1442.49 ns 5.55 ns 5.55 ns 1.00
from array of 1 - create + subscribe + current_thread 1454.77 ns 18.50 ns 19.77 ns 0.94
concat_as_source of just(1 immediate) create + subscribe 4110.04 ns 170.56 ns 171.29 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 1210.63 ns 5.55 ns 5.55 ns 1.00
interval - interval + take(3) + subscribe + immediate 3125.67 ns 133.55 ns 134.13 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3800.65 ns 58.62 ns 58.32 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1859.64 ns 12.87 ns 12.85 ns 1.00
immediate_just+filter(true)+subscribe 1354.27 ns 11.72 ns 12.36 ns 0.95
immediate_just(1,2)+skip(1)+subscribe 1778.55 ns 13.08 ns 13.12 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1369.42 ns 15.78 ns 15.96 ns 0.99
immediate_just(1,2)+first()+subscribe 2091.02 ns 12.97 ns 12.64 ns 1.03
immediate_just(1,2)+last()+subscribe 1472.72 ns 14.10 ns 14.05 ns 1.00
immediate_just+take_last(1)+subscribe 2054.53 ns 59.47 ns 61.45 ns 0.97

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 493.31 ns 6.17 ns 6.18 ns 1.00
current_thread scheduler create worker + schedule 670.64 ns 18.19 ns 19.14 ns 0.95
current_thread scheduler create worker + schedule + recursive schedule 1104.43 ns 116.12 ns 115.13 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1336.30 ns 11.19 ns 12.31 ns 0.91
immediate_just+scan(10, std::plus)+subscribe 1451.41 ns 21.60 ns 21.29 ns 1.01
immediate_just+flat_map(immediate_just(v*2))+subscribe 3609.06 ns 233.78 ns 229.26 ns 1.02
immediate_just+buffer(2)+subscribe 2326.13 ns 58.94 ns 60.73 ns 0.97
immediate_just+window(2)+subscribe + subscsribe inner 4130.82 ns 1542.58 ns 1563.74 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1345.42 ns 11.44 ns 11.45 ns 1.00
immediate_just+take_while(true)+subscribe 1344.37 ns 11.69 ns 12.37 ns 0.95

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3779.41 ns 7.71 ns 7.71 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 6048.54 ns 252.59 ns 250.85 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 7094.48 ns 236.16 ns 235.92 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 229.35 ns 230.54 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5589.81 ns 979.24 ns 957.64 ns 1.02
immediate_just(1) + zip(immediate_just(2)) + subscribe 3656.02 ns 546.71 ns 540.33 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.08 ns 26.84 ns 26.53 ns 1.01

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1897.53 ns 59.34 ns 59.12 ns 1.00
basic sample with immediate scheduler 1874.96 ns 35.48 ns 35.50 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1473.81 ns 19.99 ns 17.82 ns 1.12

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1952.22 ns 337.08 ns 339.11 ns 0.99

Please sign in to comment.