2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-08-31 22:55:11 +00:00

Allow not type-erased producers.

This commit is contained in:
John Preston
2017-09-27 14:16:05 +03:00
parent 086e46c162
commit cdda7f8f9a
25 changed files with 636 additions and 268 deletions

View File

@@ -52,7 +52,7 @@ TEST_CASE("basic producer tests", "[rpl::producer]") {
*destroyed = true;
});
{
producer<int, no_error>([=](auto &&consumer) {
make_producer<int>([=](auto &&consumer) {
(void)destroyCaller;
consumer.put_next(1);
consumer.put_next(2);
@@ -82,7 +82,7 @@ TEST_CASE("basic producer tests", "[rpl::producer]") {
SECTION("producer error test") {
auto errorGenerated = std::make_shared<bool>(false);
{
producer<no_value, bool>([=](auto &&consumer) {
make_producer<no_value, bool>([=](auto &&consumer) {
consumer.put_error(true);
return lifetime();
}).start([=](no_value) {
@@ -99,7 +99,7 @@ TEST_CASE("basic producer tests", "[rpl::producer]") {
{
auto lifetimes = lifetime();
{
auto testProducer = producer<no_value, no_error>([=](auto &&consumer) {
auto testProducer = make_producer<no_value>([=](auto &&consumer) {
return [=] {
++*lifetimeEndCount;
};
@@ -123,8 +123,8 @@ TEST_CASE("basic producer tests", "[rpl::producer]") {
auto lifetimeEndCount = std::make_shared<int>(0);
auto saved = lifetime();
{
saved = producer<int, no_error>([=](auto &&consumer) {
auto inner = producer<int, no_error>([=](auto &&consumer) {
saved = make_producer<int>([=](auto &&consumer) {
auto inner = make_producer<int>([=](auto &&consumer) {
consumer.put_next(1);
consumer.put_next(2);
consumer.put_next(3);
@@ -161,7 +161,8 @@ TEST_CASE("basic producer tests", "[rpl::producer]") {
SECTION("tuple producer test") {
auto result = std::make_shared<int>(0);
{
producer<std::tuple<int, double>>([=](auto &&consumer) {
make_producer<std::tuple<int, double>>([=](
auto &&consumer) {
consumer.put_next(std::make_tuple(1, 2.));
return lifetime();
}).start([=](int a, double b) {
@@ -345,7 +346,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
auto dones = std::make_shared<int>(0);
{
auto alive = lifetime();
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_next(1);
consumer.put_done();
return lifetime();
@@ -353,7 +354,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
*sum += value;
}, alive);
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_next(11);
consumer.put_error(111);
return lifetime();
@@ -361,7 +362,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
*sum += value;
}, alive);
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_next(1111);
consumer.put_done();
return lifetime();
@@ -369,7 +370,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
*dones += 1;
}, alive);
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_next(11111);
consumer.put_next(11112);
consumer.put_next(11113);
@@ -383,7 +384,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
}
auto alive = lifetime();
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_next(111111);
consumer.put_next(111112);
consumer.put_next(111113);
@@ -395,7 +396,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
*dones += 11;
}, alive);
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_error(1111111);
return lifetime();
}) | start_with_error_done([=](int value) {
@@ -404,7 +405,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
*dones = 0;
}, alive);
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_next(11111111);
consumer.put_next(11111112);
consumer.put_next(11111113);
@@ -438,7 +439,7 @@ TEST_CASE("basic piping tests", "[rpl::producer]") {
for (int i = 0; i != 3; ++i) {
auto alive = lifetime();
producer<int, int>([=](auto &&consumer) {
make_producer<int, int>([=](auto &&consumer) {
consumer.put_next(1);
consumer.put_done();
return lifetime();