reduction fix. move declaration and add event_loop constructor to ConveyorSinks

This commit is contained in:
keldu.magnus 2021-05-03 22:10:46 +02:00
parent dfe57ecff7
commit 3883f92296
3 changed files with 11 additions and 8 deletions

View File

@ -277,6 +277,8 @@ void ConveyorSinks::fail(Error &&error) {
/// @todo call error_handler
}
ConveyorSinks::ConveyorSinks(EventLoop &event_loop) : Event{event_loop} {}
void ConveyorSinks::add(Conveyor<void> &&sink) {
auto nas = Conveyor<void>::fromConveyor(std::move(sink));

View File

@ -88,11 +88,18 @@ template <typename T> Conveyor<T> chainedConveyorType(T *);
template <typename T> Conveyor<T> chainedConveyorType(Conveyor<T> *);
template <typename T> T reduceErrorOrType(T *);
template <typename T> T reduceErrorOrType(ErrorOr<T> *);
template <typename T>
using ReduceErrorOr = decltype(reduceErrorOrType((T *)nullptr));
template <typename T>
using ChainedConveyors = decltype(chainedConveyorType((T *)nullptr));
template <typename Func, typename T>
using ConveyorResult = ChainedConveyors<ReturnType<Func, T>>;
using ConveyorResult = ChainedConveyors<ReduceErrorOr<ReturnType<Func, T>>>;
struct PropagateError {
public:
@ -274,6 +281,7 @@ private:
public:
ConveyorSinks() = default;
ConveyorSinks(EventLoop &event_loop);
void add(Conveyor<void> &&node);

View File

@ -34,13 +34,6 @@ template <typename T> void ImmediateConveyorNode<T>::fire() {
}
}
template <typename T> T reduceErrorOrType(T *);
template <typename T> T reduceErrorOrType(ErrorOr<T> *);
template <typename T>
using ReduceErrorOr = decltype(reduceErrorOrType((T *)nullptr));
template <typename T>
Conveyor<T>::Conveyor(FixVoid<T> value) : ConveyorBase(nullptr, nullptr) {
// Is there any way to do this?