// Description: Single reporter
#ifndef PASTELSYS_SINGLE_OUTPUT_H
#define PASTELSYS_SINGLE_OUTPUT_H
#include "pastel/sys/output/output_concept.h"
namespace Pastel
{
template <typename Type>
class Single_Output
{
public:
explicit Single_Output(Type& data)
: data_(data)
{
}
template <typename That>
bool operator()(That&& that) const
{
data_ = std::forward<That>(that);
return false;
}
private:
Type& data_;
};
template <typename Type>
Single_Output<Type> singleOutput(
Type& data)
{
return Single_Output<Type>(data);
}
}
#endif