Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add combining operators (reduce, average, min, max, sum, count) #316

Merged
merged 8 commits into from
Dec 21, 2022

Conversation

victimsnino
Copy link
Owner

@victimsnino victimsnino commented Dec 19, 2022

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ clang-tidy found issue(s) with the introduced code (1/2)

src/rpp/rpp/operators/fwd/scan.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/scan.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
@codecov
Copy link

codecov bot commented Dec 20, 2022

Codecov Report

Merging #316 (6c57357) into main (9a0c390) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #316      +/-   ##
==========================================
+ Coverage   97.83%   97.88%   +0.04%     
==========================================
  Files         112      114       +2     
  Lines        1712     1795      +83     
==========================================
+ Hits         1675     1757      +82     
- Misses         37       38       +1     
Impacted Files Coverage Δ
src/rpp/rpp/observables/interface_observable.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/scan.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/reduce.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/operators/reduce.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/operators/scan.hpp 88.88% <100.00%> (-11.12%) ⬇️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ clang-tidy found issue(s) with the introduced code (2/2)

src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
src/rpp/rpp/operators/fwd/reduce.hpp Show resolved Hide resolved
{
for (size_t i = 0; i < 10; ++i)
{
auto copy = sub;
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ performance-unnecessary-copy-initialization ⚠️
local copy copy of the variable sub is never modified; consider avoiding the copy

Suggested change
auto copy = sub;
const auto copy = sub;

{
for (size_t i = 0; i < 10; ++i)
{
auto copy = sub;
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ performance-unnecessary-copy-initialization ⚠️
local copy copy of the variable sub is never modified; consider avoiding the copy

Suggested change
auto copy = sub;
auto& copy = sub;

@github-actions
Copy link
Contributor

github-actions bot commented Dec 20, 2022

BENCHMARK RESULTS (AUTOGENERATED)

ci-macos

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.28ns 0.27903 1.02 0.33ns
Dynamic observable construction 68.32ns 68.1257 1.00 117.21ns
Specific observable construction + as_dynamic 75.03ns 82.4637 0.91 118.41ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 137.35ns 131.362 1.05 1258.34ns
Specific observable lift dynamic observer 258.96ns 161.09 1.61 1217.11ns
Dynamic observable lift specific observer 237.79ns 237.847 1.00 1348.79ns
Dynamic observable lift dynamic observer 206.51ns 216.277 0.95 1228.01ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 102.26ns 117.938 0.87 1159.55ns
Specific observable subscribe dynamic observer 130.53ns 135.302 0.96 1242.59ns
Dynamic observable subscribe specific observer 312.66ns 221.395 1.41 1278.14ns
Dynamic observable subscribe dynamic observer 186.34ns 168.268 1.11 1343.94ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 178.04ns 122.938 1.45 1133.99ns
Dynamic observable subscribe lambda 218.24ns 214.9 1.02 1322.74ns
Specific observable subscribe lambda without subscription 130.91ns 105.83 1.24 1221.24ns
Dynamic observable subscribe lambda without subscription 236.45ns 217.814 1.09 1327.95ns
Specific observable subscribe specific subscriber 30.52ns 45.4233 0.67 894.61ns
Dynamic observable subscribe specific subscriber 136.41ns 127.864 1.07 934.61ns
Specific observable subscribe dynamic observer 31.00ns 31.3898 0.99 946.59ns
Dynamic observable subscribe dynamic observer 83.30ns 72.6788 1.15 967.36ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.28ns 0.278186 1.01 0.30ns
Dynamic observer construction 77.43ns 73.0882 1.06 101.00ns
Specific observer construction + as_dynamic 76.05ns 90.3758 0.84 129.00ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.88ns 0.818887 1.07 0.96ns
Dynamic observer OnNext 2.12ns 2.32238 0.91 2.57ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 76.04ns 75.295 1.01 314.86ns
Make copy of subscriber 13.71ns 16.7436 0.82 26.40ns
Transform subsriber to dynamic 85.33ns 84.9383 1.00 145.67ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 75.60ns 70.0126 1.08 304.60ns
composite_subscription add 95.39ns 56.5819 1.69 111.13ns
composite_subscription unsubscribe 80.87ns 79.9868 1.01 79.01ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1287.21ns 1484.79 0.87 3332.06ns
sending of values from observable via buffer to subscriber 5.98ns 6.45254 0.93 93.47ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 253.06ns 225.893 1.12 1423.71ns
long stateful chain creation + subscribe 573.88ns 528.399 1.09 2961.55ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1578.09ns 1345.48 1.17 .
sending of values from observable via combine_latest to subscriber 22.85ns 30.0531 0.76 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 4234.72ns 5248.28 0.81 12100.10ns
concat_with 4833.44ns 4354.19 1.11 13260.00ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 170.40ns 175.512 0.97 1009.33ns
sending of values from observable via distinct_until_changed to subscriber 2.72ns 2.3327 1.16 1.21ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 154.57ns 128.772 1.20 2190.75ns
sending of values from observable via first to subscriber 0.84ns 1.59313 0.53 0.93ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 68.05ns 65.2289 1.04 2463.52ns
error 118.36ns 108.434 1.09 2312.35ns
never 47.09ns 32.1934 1.46 923.29ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 714.60ns 806.41 0.89 2262.04ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 2.30ns 2.42542 0.95 391.06ns
re-schedule 10 times 27.27ns 28.726 0.95 472.33ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 542.63ns 435.854 1.24 2487.65ns
just send variadic 1968.33ns 1964.61 1.00 2399.93ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 267.08ns 247.863 1.08 1310.89ns
sending of values from observable via last to subscriber 2.59ns 2.94866 0.88 1.28ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 68.12ns 67.6422 1.01 1251.97ns
sending of values from observable via map to subscriber 1.18ns 1.4803 0.79 1.61ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 4210.54ns 4535.56 0.93 9921.51ns
merge_with 4069.82ns 4357.58 0.93 12080.70ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1286.52ns 1306.09 0.99 18373.30ns
sending of values from observable via observe_on to subscriber 247.50ns 228.683 1.08 985.90ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 651.95ns 610.977 1.07 1553.70ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.66ns 23.2785 0.97 30.94ns
on_error 0.66ns 0.572992 1.16 17.16ns
on_completed 0.58ns 0.583452 0.99 2.54ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 314.80ns 392.884 0.80 997.78ns
get_observable 26.40ns 26.4761 1.00 155.80ns
get_subscriber 51.83ns 55.3011 0.94 79.75ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 6637.91ns 5670.98 1.17 10244.70ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 310.89ns 141.244 2.20 1160.69ns
sending of values from observable via scan to subscriber 2.65ns 2.71182 0.98 2.06ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.04ns 2.2922 0.89 .
mutex lock increment 26.23ns 28.0927 0.93 .
spin-lock increment 8.76ns 8.64954 1.01 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 155.01ns 148.872 1.04 1457.95ns
sending of values from observable via skip to subscriber 2.49ns 2.79216 0.89 1.87ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 5025.75ns 5044.34 1.00 10320.30ns
sending of values from observable via switch_on_next to subscriber 1062.77ns 929.679 1.14 2835.66ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 220.14ns 188.628 1.17 2233.09ns
sending of values from observable via take to subscriber 2.93ns 2.75427 1.06 5.75ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 358.91ns 349.514 1.03 2231.31ns
sending of values from observable via take_last to subscriber 2.87ns 2.76533 1.04 5.22ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2288.94ns 2402.12 0.95 4935.28ns
sending of values from observable via take_until to subscriber 8.22ns 10.4535 0.79 2.65ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 6132.49ns 9209.88 0.67 4352.32ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 80.41ns 74.2772 1.08 936.42ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 30.38ns 48.3026 0.63 619.37ns
re-schedule 10 times 116.88ns 102.41 1.14 659.41ns
recursively schedule 10 times 1931.92ns 2171.52 0.89 16163.80ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 4451.01ns 4943.39 0.90 9170.52ns
sending of values from observable via window to subscriber 854.13ns 889.377 0.96 1506.34ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1681.73ns 1655.28 1.02 .
sending of values from observable via with_latest_from to subscriber 24.01ns 23.2288 1.03 .

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.34ns 0.33508 1.00 0.34ns
Dynamic observable construction 18.51ns 18.988 0.97 30.44ns
Specific observable construction + as_dynamic 17.85ns 17.7631 1.00 30.16ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 50.40ns 50.1867 1.00 323.66ns
Specific observable lift dynamic observer 51.22ns 51.205 1.00 344.59ns
Dynamic observable lift specific observer 84.29ns 84.106 1.00 376.95ns
Dynamic observable lift dynamic observer 74.88ns 74.7933 1.00 358.94ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 36.72ns 36.5498 1.00 319.21ns
Specific observable subscribe dynamic observer 37.43ns 39.6436 0.94 335.76ns
Dynamic observable subscribe specific observer 70.62ns 70.2907 1.00 365.77ns
Dynamic observable subscribe dynamic observer 59.88ns 59.9628 1.00 351.71ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 36.90ns 36.6657 1.01 321.08ns
Dynamic observable subscribe lambda 66.09ns 66.0412 1.00 363.87ns
Specific observable subscribe lambda without subscription 36.50ns 36.5228 1.00 320.94ns
Dynamic observable subscribe lambda without subscription 64.70ns 64.8468 1.00 363.95ns
Specific observable subscribe specific subscriber 13.74ns 13.7312 1.00 259.07ns
Dynamic observable subscribe specific subscriber 42.90ns 42.5499 1.01 300.67ns
Specific observable subscribe dynamic observer 13.75ns 13.7575 1.00 268.83ns
Dynamic observable subscribe dynamic observer 33.54ns 33.6316 1.00 286.72ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.34ns 0.335815 1.00 0.34ns
Dynamic observer construction 18.29ns 18.3179 1.00 23.84ns
Specific observer construction + as_dynamic 18.26ns 18.7795 0.97 23.85ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.66887 1.00 0.68ns
Dynamic observer OnNext 1.68ns 1.67382 1.00 2.35ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 19.73ns 19.7743 1.00 68.37ns
Make copy of subscriber 6.99ns 6.97124 1.00 8.13ns
Transform subsriber to dynamic 20.02ns 20.0373 1.00 28.62ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 19.42ns 19.4833 1.00 60.92ns
composite_subscription add 18.01ns 18.0112 1.00 92.28ns
composite_subscription unsubscribe 30.35ns 30.2812 1.00 30.24ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 740.43ns 741.438 1.00 1823.11ns
sending of values from observable via buffer to subscriber 6.02ns 6.01915 1.00 25.96ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 102.30ns 102.409 1.00 618.23ns
long stateful chain creation + subscribe 144.79ns 147.184 0.98 1957.51ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 457.79ns 455.386 1.01 .
sending of values from observable via combine_latest to subscriber 9.03ns 9.03023 1.00 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1798.73ns 1848.38 0.97 3461.09ns
concat_with 1570.02ns 1583.28 0.99 3931.22ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 51.62ns 51.5856 1.00 304.16ns
sending of values from observable via distinct_until_changed to subscriber 2.01ns 2.00827 1.00 1.17ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 62.50ns 62.2667 1.00 692.61ns
sending of values from observable via first to subscriber 1.00ns 1.00579 1.00 1.01ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 36.48ns 36.4167 1.00 685.57ns
error 81.43ns 81.3685 1.00 783.05ns
never 14.45ns 14.4599 1.00 271.42ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 246.25ns 238.079 1.03 709.74ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.34ns 1.34177 1.00 122.49ns
re-schedule 10 times 7.72ns 7.71072 1.00 153.88ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 198.57ns 199.097 1.00 677.45ns
just send variadic 1149.52ns 1165.94 0.99 759.55ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 88.75ns 88.2171 1.01 421.81ns
sending of values from observable via last to subscriber 2.03ns 2.02945 1.00 1.34ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 30.59ns 30.4013 1.01 286.14ns
sending of values from observable via map to subscriber 1.34ns 1.34062 1.00 2.01ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1758.64ns 1750.25 1.00 3518.41ns
merge_with 1564.08ns 1593.88 0.98 3836.97ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 547.03ns 563.07 0.97 2802.71ns
sending of values from observable via observe_on to subscriber 125.93ns 126.011 1.00 240.90ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 232.64ns 232.246 1.00 754.70ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 19.08ns 19.0497 1.00 14.90ns
on_error 0.67ns 0.673088 1.00 17.17ns
on_completed 0.67ns 0.673208 1.00 0.68ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 123.41ns 122.804 1.00 185.15ns
get_observable 7.85ns 7.93416 0.99 53.47ns
get_subscriber 19.84ns 19.6685 1.01 19.80ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 2197.18ns 2182.11 1.01 3239.79ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 45.99ns 46.0132 1.00 371.85ns
sending of values from observable via scan to subscriber 2.01ns 2.01145 1.00 2.34ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.01ns 2.01068 1.00 .
mutex lock increment 8.10ns 8.02923 1.01 .
spin-lock increment 9.05ns 9.06271 1.00 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 45.71ns 45.5983 1.00 529.74ns
sending of values from observable via skip to subscriber 2.01ns 2.01447 1.00 1.79ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 1785.59ns 1795.91 0.99 3520.21ns
sending of values from observable via switch_on_next to subscriber 4684.65ns 4627.36 1.01 805.65ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 81.82ns 81.9759 1.00 589.01ns
sending of values from observable via take to subscriber 2.35ns 2.34511 1.00 2.70ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 114.61ns 112.744 1.02 615.24ns
sending of values from observable via take_last to subscriber 2.37ns 2.3555 1.01 4.12ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 873.73ns 879.215 0.99 1391.13ns
sending of values from observable via take_until to subscriber 8.70ns 8.79825 0.99 2.34ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 787.44ns 796.436 0.99 16925.10ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 41.30ns 41.3879 1.00 14820.20ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 8.37ns 8.37803 1.00 181.84ns
re-schedule 10 times 28.70ns 27.8813 1.03 215.78ns
recursively schedule 10 times 1396.57ns 1417.11 0.99 8766.22ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 1591.82ns 1594.82 1.00 3204.08ns
sending of values from observable via window to subscriber 264.15ns 264.058 1.00 418.19ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 532.20ns 528.03 1.01 .
sending of values from observable via with_latest_from to subscriber 8.51ns 8.47644 1.00 .

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.42ns 0.413957 1.01 0.42ns
Dynamic observable construction 40.63ns 40.5705 1.00 64.90ns
Specific observable construction + as_dynamic 41.03ns 37.1987 1.10 65.00ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 123.56ns 126.637 0.98 910.30ns
Specific observable lift dynamic observer 160.00ns 160.35 1.00 971.51ns
Dynamic observable lift specific observer 229.69ns 224.64 1.02 1042.81ns
Dynamic observable lift dynamic observer 244.90ns 256.253 0.96 1002.74ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 77.29ns 72.3175 1.07 883.75ns
Specific observable subscribe dynamic observer 98.27ns 96.4028 1.02 915.25ns
Dynamic observable subscribe specific observer 165.79ns 162.538 1.02 992.24ns
Dynamic observable subscribe dynamic observer 161.01ns 173.256 0.93 930.33ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 78.19ns 71.0821 1.10 881.41ns
Dynamic observable subscribe lambda 166.20ns 159.802 1.04 983.58ns
Specific observable subscribe lambda without subscription 77.49ns 71.8298 1.08 878.24ns
Dynamic observable subscribe lambda without subscription 166.40ns 159.063 1.05 982.43ns
Specific observable subscribe specific subscriber 38.14ns 35.4804 1.07 747.16ns
Dynamic observable subscribe specific subscriber 123.97ns 126.172 0.98 853.83ns
Specific observable subscribe dynamic observer 38.09ns 39.2502 0.97 780.93ns
Dynamic observable subscribe dynamic observer 106.28ns 164.979 0.64 792.20ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.42ns 0.400141 1.04 0.42ns
Dynamic observer construction 40.79ns 37.9556 1.07 56.56ns
Specific observer construction + as_dynamic 40.77ns 38.9978 1.05 59.55ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.42ns 0.436716 0.96 0.42ns
Dynamic observer OnNext 2.51ns 2.48815 1.01 2.51ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 45.04ns 41.88 1.08 170.23ns
Make copy of subscriber 28.75ns 22.031 1.31 39.75ns
Transform subsriber to dynamic 56.74ns 54.7622 1.04 97.88ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 44.43ns 46.5339 0.95 161.99ns
composite_subscription add 59.87ns 57.4238 1.04 148.11ns
composite_subscription unsubscribe 54.61ns 56.6607 0.96 47.92ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1184.07ns 1143.14 1.04 3689.92ns
sending of values from observable via buffer to subscriber 7.84ns 7.42713 1.06 38.43ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 358.85ns 359.067 1.00 1718.86ns
long stateful chain creation + subscribe 536.08ns 545.724 0.98 5349.05ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1061.75ns 1114.51 0.95 .
sending of values from observable via combine_latest to subscriber 11.67ns 10.5953 1.10 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 3684.43ns 3835.42 0.96 9460.56ns
concat_with 3423.58ns 3188.72 1.07 10086.60ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 151.57ns 142.875 1.06 916.15ns
sending of values from observable via distinct_until_changed to subscriber 3.36ns 3.22841 1.04 1.67ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 172.50ns 170.495 1.01 2085.23ns
sending of values from observable via first to subscriber 1.68ns 0.774535 2.16 1.26ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 85.44ns 222.822 0.38 2157.89ns
error 149.78ns 148.001 1.01 2196.13ns
never 40.28ns 40.6155 0.99 787.47ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 414.64ns 433.11 0.96 2187.01ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 2.10ns 1.12334 1.87 357.16ns
re-schedule 10 times 28.51ns 22.6607 1.26 385.57ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 376.32ns 384.346 0.98 2190.19ns
just send variadic 1758.68ns 1658.68 1.06 2231.14ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 219.66ns 216.484 1.01 1255.07ns
sending of values from observable via last to subscriber 2.93ns 3.5259 0.83 1.67ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 102.63ns 98.3652 1.04 910.05ns
sending of values from observable via map to subscriber 0.94ns 0.917433 1.03 3.35ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3615.96ns 4110.52 0.88 11323.20ns
merge_with 3409.13ns 3457.62 0.99 11134.40ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1007.15ns 982.794 1.02 4114.80ns
sending of values from observable via observe_on to subscriber 199.44ns 171.395 1.16 646.92ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 552.12ns 591.427 0.93 1838.29ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 28.02ns 29.1871 0.96 19.69ns
on_error 0.84ns 0.7963 1.06 21.18ns
on_completed 0.84ns 0.7671 1.10 0.84ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 268.97ns 281.319 0.96 470.09ns
get_observable 36.83ns 36.8284 1.00 122.86ns
get_subscriber 71.72ns 62.9675 1.14 124.38ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 5212.07ns 5000.31 1.04 8832.93ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 146.87ns 145.082 1.01 1119.16ns
sending of values from observable via scan to subscriber 2.12ns 3.14939 0.67 2.00ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.51ns 2.59362 0.97 .
mutex lock increment 9.21ns 9.54201 0.97 .
spin-lock increment 11.31ns 14.0122 0.81 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 145.12ns 129.946 1.12 1353.88ns
sending of values from observable via skip to subscriber 3.36ns 4.0091 0.84 2.93ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 3929.65ns 3837.13 1.02 13248.10ns
sending of values from observable via switch_on_next to subscriber 982.59ns 1420.06 0.69 3663.31ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 218.38ns 228.149 0.96 1701.87ns
sending of values from observable via take to subscriber 5.02ns 4.72987 1.06 5.05ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 260.85ns 262.033 1.00 1769.87ns
sending of values from observable via take_last to subscriber 3.79ns 4.2095 0.90 7.41ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1976.55ns 1895.66 1.04 4400.03ns
sending of values from observable via take_until to subscriber 11.30ns 13.6626 0.83 2.34ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1391.33ns 1338.97 1.04 16773.20ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 75.68ns 74.0285 1.02 2816.22ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 27.64ns 23.1243 1.20 458.40ns
re-schedule 10 times 64.11ns 48.208 1.33 498.81ns
recursively schedule 10 times 1985.59ns 1665.16 1.19 24444.00ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3410.84ns 3304.47 1.03 7425.44ns
sending of values from observable via window to subscriber 682.36ns 649.141 1.05 1186.33ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1306.42ns 1233.69 1.06 .
sending of values from observable via with_latest_from to subscriber 12.03ns 11.4897 1.05 .

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 2.07ns 1.80743 1.14 0.81ns
Dynamic observable construction 99.99ns 97.4217 1.03 157.78ns
Specific observable construction + as_dynamic 104.51ns 98.0929 1.07 152.91ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 172.46ns 174.96 0.99 1571.95ns
Specific observable lift dynamic observer 216.72ns 214.683 1.01 1621.95ns
Dynamic observable lift specific observer 383.16ns 332.516 1.15 1817.11ns
Dynamic observable lift dynamic observer 296.06ns 289.587 1.02 1757.06ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 156.91ns 132.895 1.18 1967.90ns
Specific observable subscribe dynamic observer 165.67ns 156.505 1.06 1655.40ns
Dynamic observable subscribe specific observer 285.60ns 273.55 1.04 1691.82ns
Dynamic observable subscribe dynamic observer 228.71ns 215.07 1.06 1531.06ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 161.46ns 134.526 1.20 1599.85ns
Dynamic observable subscribe lambda 306.75ns 265.313 1.16 1676.29ns
Specific observable subscribe lambda without subscription 151.00ns 134.703 1.12 1518.90ns
Dynamic observable subscribe lambda without subscription 282.21ns 364.655 0.77 1699.11ns
Specific observable subscribe specific subscriber 38.42ns 36.5883 1.05 1204.78ns
Dynamic observable subscribe specific subscriber 185.68ns 177.753 1.04 1373.68ns
Specific observable subscribe dynamic observer 37.92ns 36.5669 1.04 1156.44ns
Dynamic observable subscribe dynamic observer 102.59ns 94.4514 1.09 1232.15ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.94ns 1.81499 1.07 2.93ns
Dynamic observer construction 103.91ns 99.6258 1.04 142.93ns
Specific observer construction + as_dynamic 113.89ns 99.9902 1.14 152.88ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.80ns 0.803192 1.00 0.88ns
Dynamic observer OnNext 2.60ns 2.40793 1.08 2.38ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 107.72ns 101.394 1.06 421.83ns
Make copy of subscriber 18.52ns 20.0726 0.92 39.67ns
Transform subsriber to dynamic 143.87ns 117.549 1.22 223.25ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 108.13ns 125.446 0.86 421.67ns
composite_subscription add 94.54ns 82.9318 1.14 202.05ns
composite_subscription unsubscribe 78.75ns 75.0035 1.05 184.58ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1339.00ns 1321.95 1.01 5922.33ns
sending of values from observable via buffer to subscriber 8.96ns 8.82848 1.01 139.56ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 339.67ns 310.576 1.09 2322.54ns
long stateful chain creation + subscribe 829.30ns 853.026 0.97 4366.86ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 2291.00ns 1972.0 1.16 .
sending of values from observable via combine_latest to subscriber 41.21ns 42.6971 0.97 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 5065.50ns 4767.57 1.06 14520.30ns
concat_with 6765.33ns 5113.5 1.32 15882.00ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 236.32ns 221.137 1.07 1312.04ns
sending of values from observable via distinct_until_changed to subscriber 10.25ns 7.1804 1.43 5.05ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 163.07ns 224.468 0.73 3549.22ns
sending of values from observable via first to subscriber 3.21ns 3.34852 0.96 1.29ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 91.60ns 74.0647 1.24 3190.30ns
error 143.26ns 130.042 1.10 3296.50ns
never 47.80ns 36.1641 1.32 1227.96ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 691.59ns 618.156 1.12 3094.00ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.63ns 2.01241 0.81 525.89ns
re-schedule 10 times 131.77ns 196.936 0.67 578.71ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 461.00ns 445.444 1.03 3251.33ns
just send variadic 1666.21ns 1584.95 1.05 3384.11ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 301.84ns 266.282 1.13 1866.33ns
sending of values from observable via last to subscriber 3.97ns 3.92768 1.01 5.11ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 108.55ns 101.486 1.07 1350.22ns
sending of values from observable via map to subscriber 4.18ns 4.83543 0.86 9.62ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 4975.00ns 4799.29 1.04 24992.00ns
merge_with 5373.50ns 4930.43 1.09 14591.50ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1514.70ns 1479.1 1.02 7463.80ns
sending of values from observable via observe_on to subscriber 239.65ns 231.024 1.04 1105.03ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 810.39ns 724.205 1.12 2422.91ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 25.04ns 23.2305 1.08 37.68ns
on_error 3.77ns 3.00741 1.25 24.42ns
on_completed 2.90ns 2.62506 1.11 0.87ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 468.75ns 412.149 1.14 787.53ns
get_observable 35.35ns 31.4432 1.12 209.32ns
get_subscriber 67.15ns 59.2909 1.13 114.57ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 8219.50ns 7205.0 1.14 14394.00ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 231.06ns 218.839 1.06 1574.47ns
sending of values from observable via scan to subscriber 6.58ns 7.65995 0.86 11.03ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 3.58ns 2.19204 1.63 .
mutex lock increment 35.10ns 29.9583 1.17 .
spin-lock increment 14.26ns 10.9424 1.30 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 215.14ns 211.714 1.02 2030.23ns
sending of values from observable via skip to subscriber 5.13ns 3.94363 1.30 4.86ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 6966.00ns 5726.0 1.22 16068.00ns
sending of values from observable via switch_on_next to subscriber 1535.44ns 1316.95 1.17 4042.00ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 280.39ns 1211.72 0.23 2950.09ns
sending of values from observable via take to subscriber 7.95ns 7.3031 1.09 7.66ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 427.97ns 364.457 1.17 3035.44ns
sending of values from observable via take_last to subscriber 5.29ns 5.006 1.06 40.56ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2819.09ns 2757.75 1.02 7027.80ns
sending of values from observable via take_until to subscriber 14.69ns 13.3713 1.10 7.52ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 2223.23ns 1958.71 1.14 6593.67ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 66.85ns 61.7064 1.08 1760.64ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 23.47ns 21.7042 1.08 828.23ns
re-schedule 10 times 161.14ns 141.427 1.14 837.19ns
recursively schedule 10 times 3609.22ns 3157.4 1.14 23629.00ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 4742.29ns 4373.43 1.08 13083.70ns
sending of values from observable via window to subscriber 1028.70ns 1517.71 0.68 2173.79ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2706.80ns 2415.17 1.12 .
sending of values from observable via with_latest_from to subscriber 36.34ns 56.3282 0.65 .

@victimsnino victimsnino changed the title Add combining operators (reduce, average, ...) Add combining operators (reduce, average, min, max, sum, count) Dec 20, 2022
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ clang-tidy found issue(s) with the introduced code (1/2)

template<constraint::decayed_type CastBeforeDivide, constraint::observable TObs>
auto average_impl(TObs&& observable);

template<constraint::observable TObs>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
no type named observable in namespace rpp::constraint

auto average_impl(TObs&& observable);

template<constraint::observable TObs>
auto sum_impl(TObs&& observable);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
use of undeclared identifier observable

template<constraint::observable TObs>
auto sum_impl(TObs&& observable);

template<constraint::observable TObs>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
no type named observable in namespace rpp::constraint

auto sum_impl(TObs&& observable);

template<constraint::observable TObs>
auto count_impl(TObs&& observable);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
use of undeclared identifier observable

template<constraint::observable TObs>
auto count_impl(TObs&& observable);

template<constraint::observable TObs, typename Comparator>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
no type named observable in namespace rpp::constraint

auto count_impl(TObs&& observable);

template<constraint::observable TObs, typename Comparator>
auto min_impl(TObs&& observable, Comparator&& comparator);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
use of undeclared identifier observable

auto count_impl(TObs&& observable);

template<constraint::observable TObs, typename Comparator>
auto min_impl(TObs&& observable, Comparator&& comparator);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
Comparator does not refer to a value

auto count_impl(TObs&& observable);

template<constraint::observable TObs, typename Comparator>
auto min_impl(TObs&& observable, Comparator&& comparator);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
use of undeclared identifier comparator; did you mean operator?

Suggested change
auto min_impl(TObs&& observable, Comparator&& comparator);
auto min_impl(TObs&& observable, Comparator&& operator);

template<constraint::observable TObs, typename Comparator>
auto min_impl(TObs&& observable, Comparator&& comparator);

template<constraint::observable TObs, typename Comparator>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
no type named observable in namespace rpp::constraint

auto min_impl(TObs&& observable, Comparator&& comparator);

template<constraint::observable TObs, typename Comparator>
auto max_impl(TObs&& observable, Comparator&& comparator);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
use of undeclared identifier observable

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ clang-tidy found issue(s) with the introduced code (2/2)

auto min_impl(TObs&& observable, Comparator&& comparator);

template<constraint::observable TObs, typename Comparator>
auto max_impl(TObs&& observable, Comparator&& comparator);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
Comparator does not refer to a value

auto min_impl(TObs&& observable, Comparator&& comparator);

template<constraint::observable TObs, typename Comparator>
auto max_impl(TObs&& observable, Comparator&& comparator);
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-diagnostic-error ⚠️
use of undeclared identifier comparator; did you mean operator?

Suggested change
auto max_impl(TObs&& observable, Comparator&& comparator);
auto max_impl(TObs&& observable, Comparator&& operator);

@sonarcloud
Copy link

sonarcloud bot commented Dec 20, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 22 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@victimsnino victimsnino merged commit bd7d42c into main Dec 21, 2022
@victimsnino victimsnino deleted the reduce branch December 21, 2022 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant