Resolved solve_sat()

in include/poac/core/resolver.hpp [218:238]


    Resolved solve_sat(const Activated& activated, const std::vector<std::vector<int>>& clauses) {
        Resolved resolved_deps{};
        // deps.activated.size() == variables
        const auto [result, assignments] = sat::solve(clauses, activated.size());
        if (result == sat::Sat::completed) {
            io::cli::debugln("SAT");
            for (const auto& a : assignments) {
                io::cli::debug(a, " ");
                if (a > 0) {
                    const auto dep = activated[a - 1];
                    resolved_deps.activated.push_back(dep);
                    resolved_deps.backtracked[dep.name] = { {dep.version}, {dep.source} };
                }
            }
            io::cli::debugln(0);
        }
        else {
            throw exception::error("Could not solve in this dependencies.");
        }
        return resolved_deps;
    }