make nodes to provide nodes instead of mixins

This commit is contained in:
Сергей Маринкевич
2025-07-25 15:02:15 +07:00
parent c228caaa45
commit e5dc6f7502
11 changed files with 76 additions and 70 deletions
+9 -11
View File
@@ -3,23 +3,22 @@
#include <iostream>
#include "Logger.h"
void printTree(const NodePtr& startNode, int indent = 0) {
if (!startNode) {
std::cout << "No node" << "\n";
void printTree(const NodePtr& node, int indent = 0) {
if (!node) {
Logger::get("MAIN").err("No node");
return;
}
for (int i = 0; i < indent; ++i) std::cout << " ";
std::cout << startNode->name() << "\n";
LinkPtr nodeLink = startNode->getLink();
for (const auto& child : nodeLink->getChildren()) {
auto childNode = std::dynamic_pointer_cast<INode>(child);
printTree(childNode, indent + 1);
}
std::cout << node->name() << "\n";
for (const auto& child : node->children())
printTree(child, indent + 1);
}
int main() {
Logger::setMinSeverity("MAIN", Logger::Severity::Debug);
//Logger::suppressCategory("Node");
Logger::suppressCategory("Node");
Logger::suppressCategory("Link");
Logger::suppressCategory("Mixin");
auto& logger = Logger::get("MAIN");
@@ -35,7 +34,6 @@ int main() {
printTree(root);
std::cout << "\n";
{
auto child2 = std::make_shared<ComplexNode>("ComplexChild2");
root->linkChild(child2);