
#ifndef PLS_DATAFLOW_INTERNAL_OUTPUTS_H_
#define PLS_DATAFLOW_INTERNAL_OUTPUTS_H_

#include <tuple>

#include "output.h"

namespace pls {
namespace dataflow {
namespace internal {

template<int P, typename ...O>
class outputs {
  using values_type = std::tuple<output<P, 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_INTERNAL_OUTPUTS_H_
