20#ifndef HEDGEHOG_CX_CONCEPTS_H_
21#define HEDGEHOG_CX_CONCEPTS_H_
25#include "meta_functions.h"
32#ifndef DOXYGEN_SHOULD_SKIP_THIS
43template<
class HedgehogNode>
49template<
typename StaticHedgehogNode>
50concept HedgehogStaticNode =
requires{
51 std::is_base_of_v<hh_cx::behavior::AbstractNode, StaticHedgehogNode>;
52 typename StaticHedgehogNode::ro_type_t;
53 typename StaticHedgehogNode::dynamic_node_t;
54 typename StaticHedgehogNode::inputs_t;
55 typename StaticHedgehogNode::outputs_t;
62template<
typename DynamicHedgehogNode>
63concept HedgehogDynamicGraphForStaticAnalysis =
64HedgehogConnectableNode<DynamicHedgehogNode>
67 std::tuple_size_v<typename DynamicHedgehogNode::inputs_t>,
68 hh_cx::tool::CatTuples_t<
69 typename DynamicHedgehogNode::inputs_t,
70 typename DynamicHedgehogNode::outputs_t>
73 && std::is_constructible_v<DynamicHedgehogNode, std::string const &>;
Test if a node is a sender node.
Test if a node is a receiver node.