// #pragma once // #include "core/object/ref_counted.h" // struct Sync // { }; // class FactoryEntity; // struct NodePtr // { // NodePtr() = default; // NodePtr(FactoryEntity* node) : Node{ node } {} // template // T* AsNode() const // { // static_assert(std::is_base_of_v); // DEV_ASSERT(Object::cast_to(Node)); // return static_cast(Node); // } // FactoryEntity* Node{}; // }; // class Archetype; // struct ArchetypePtr // { // ArchetypePtr() = default; // ArchetypePtr(Ref& archetpye) : Archetype{ archetpye } {} // Ref Archetype; // };