networkit_rs/
correlation.rs

1use cxx::UniquePtr;
2use miette::IntoDiagnostic;
3
4use crate::{
5    base::Algorithm,
6    bridge::{self, *},
7};
8
9pub struct Assortativity {
10    inner: UniquePtr<bridge::Assortativity>,
11}
12
13impl Assortativity {
14    pub fn new(g: &crate::Graph, attributes: &[f64]) -> Self {
15        Self {
16            inner: NewAssortativity(g, attributes),
17        }
18    }
19    pub fn get_coefficient(&self) -> f64 {
20        self.inner.getCoefficient()
21    }
22}
23
24impl Algorithm for Assortativity {
25    fn run(&mut self) -> miette::Result<()> {
26        self.inner.pin_mut().run().into_diagnostic()
27    }
28
29    fn has_finished(&self) -> bool {
30        self.inner.hasFinished()
31    }
32}