Iros
 
Loading...
Searching...
No Matches
pipeline.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/util/forward.h"
7
9template<typename T, Pipeable F>
10requires(concepts::Invocable<F, T>)
11constexpr auto operator|(T&& value, F&& function) -> decltype(auto) {
12 return function::invoke(util::forward<F>(function), util::forward<T>(value));
13}
14
15template<Pipeable F, Pipeable G>
17constexpr auto operator|(F&& f, G&& g) {
18 return function::compose(util::forward<G>(g), util::forward<F>(f));
19}
20
21template<Pipeable F, Pipeable G>
22constexpr auto operator*(F&& f, G&& g) {
23 return function::compose(util::forward<G>(g), util::forward<F>(f));
24}
25}
Definition invoke.h:58
Definition pipeable.h:7
constexpr auto operator*(F &&f, G &&g)
Definition pipeline.h:22
Definition as_bool.h:8
constexpr auto invoke
Definition invoke.h:100
constexpr auto compose(F &&f)
Definition compose.h:59
constexpr auto value
Definition value.h:34