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:
@@ -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();
|
||||
|
Reference in New Issue
Block a user