// 2020/08/28 - Created by netcan: https://github.com/netcan #pragma once #include "connection.hpp" #include "type_list.hpp" #include namespace tf { namespace dsl { template class TaskAnalyzer { template struct BuildOneToOneLink; template struct BuildOneToOneLink, Ts> { using type = Concat_t::type...>; }; template struct BuildOneToOneLink, std::enable_if_t>> { using type = TypeList...>; }; template class OneToOneLinkSetF { using FromTaskList = typename Link::FromTaskList; using ToTaskList = typename Link::ToTaskList; public: using type = typename BuildOneToOneLink::type; }; public: using AllTasks = Unique_t< Concat_t>; using OneToOneLinkSet = Unique_t, OneToOneLinkSetF>>>; }; } // namespace dsl } // namespace tf