#pragma once #include #include #include "rust/cxx.h" #include "kaminpar/vendor/KaMinPar/library/libkaminpar.h" class PartitionerBuilder { public: PartitionerBuilder(); void set_threads(int threads); void set_epsilon(double epsilon); void set_seed(uint64_t seed); void set_edge_weights(rust::Vec edge_weights); void set_node_weights(rust::Vec node_weights); std::unique_ptr> partition(rust::Vec nodes, rust::Vec edges, uint32_t num_partitions); private: int m_threads; double m_epsilon; uint64_t m_seed; std::optional> m_node_weights; std::optional> m_edge_weights; }; std::unique_ptr new_partition_builder();