#ifndef _RIVE_DEPENDENCYSORTER_HPP_
#define _RIVE_DEPENDENCYSORTER_HPP_

#include <unordered_set>
#include <vector>

namespace rive {
class Component;
class DependencySorter {
private:
    std::unordered_set<Component*> m_Perm;
    std::unordered_set<Component*> m_Temp;

public:
    void sort(Component* root, std::vector<Component*>& order);
    bool visit(Component* component, std::vector<Component*>& order);
};
} // namespace rive

#endif