
#ifndef PLS_DATAFLOW_OUTPUTS_H_
#define PLS_DATAFLOW_OUTPUTS_H_

#include <tuple>

#include "output.h"

namespace pls {
namespace dataflow {

template<typename O1, typename ...O>
class outputs {
  using values_type = std::tuple<output<O1>, output<O>...>;
  values_type values_;

 public:
  template<int N>
  typename std::tuple_element<N, values_type>::type &get() {
    return std::get<N>(values_);
  }
};

}
}

#endif //PLS_DATAFLOW_OUTPUTS_H_
