Simple-Log
alpha-v0.7
|
Combines a projection on Record type with a predicate into an invokable object. More...
#include <Filters.hpp>
Public Types | |
using | Projection_t = std::remove_cvref_t< TProjection > |
using | UnaryPredicate_t = std::remove_cvref_t< TUnaryPredicate > |
Public Member Functions | |
constexpr | ProjectionFilter (TProjection projection, TUnaryPredicate predicate) noexcept(std::is_nothrow_move_constructible_v< Projection_t > &&std::is_nothrow_move_constructible_v< UnaryPredicate_t >) |
Constructor. More... | |
template<Record TRecord> | |
constexpr bool | operator() (const TRecord &rec) |
Call-operator. More... | |
Combines a projection on Record type with a predicate into an invokable object.
TProjection | A Projection type, which has to accept an object of the used Record type and must return something |
TUnaryPredicate | A predicate type, which accepts objects returned by TProjection |
Instances of this class are invokable with any types, which follow the Record concept. Due to possible custom implementations or adjustments ProjectionFilter can't rely on the libraries BaseRecord type and therefore is not able to pre-check the provided Projection and Predicate via concept.
using sl::log::ProjectionFilter< TProjection, TUnaryPredicate >::Projection_t = std::remove_cvref_t<TProjection> |
using sl::log::ProjectionFilter< TProjection, TUnaryPredicate >::UnaryPredicate_t = std::remove_cvref_t<TUnaryPredicate> |
|
inlineconstexprnoexcept |
Constructor.
projection | Invokable object |
predicate | Predicate object |
|
inlineconstexpr |
Call-operator.
TRecord | Concrete type of the used Record object |
rec | Record object |