extern "C" __attribute__((visibility("default"))) auto xronos_node_descriptor() \
-> const ::xronos::abi::NodeDescriptor* { \
static constexpr ::xronos::abi::NodeDescriptor descriptor{::xronos::abi::version_major, \
::xronos::abi::version_minor, \
::xronos::sdk::config::VERSION.data(), default_name}; \
return &descriptor; \
} \
extern "C" __attribute__((visibility("default"))) auto xronos_create_node( \
const char* name, ::xronos::abi::Backend* backend, ::xronos::abi::ElementUid parent) -> ::xronos::abi::Node* { \
return ::xronos::sdk::detail::create_node<NodeClass>(name, backend, parent); \
} \
extern "C" __attribute__((visibility("default"))) auto xronos_create_top_level_node( \
const char* name, ::xronos::abi::Backend* backend) -> ::xronos::abi::Node* { \
return ::xronos::sdk::detail::create_node<NodeClass>(name, backend); \
}