pub trait ComponentDecomposition {
// Required methods
fn number_of_components(&self) -> u64;
fn component_of_node(&self, u: u64) -> u64;
fn get_partition(&self) -> Partition;
fn get_component_sizes(&self) -> BTreeMap<u64, u64>;
fn get_components(&self) -> Vec<Vec<u64>>;
}