use eigentrust::{eigentrust, PreTrust, TrustEdge};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let names = ["alice", "bob", "carol", "mallory"];
let local_trust = [
TrustEdge::new(0, 1, 3.0), TrustEdge::new(0, 2, 1.0), TrustEdge::new(1, 2, 2.0), TrustEdge::new(2, 0, 1.0), TrustEdge::new(3, 3, 9.0), ];
let pre_trust = [PreTrust::new(0, 1.0)];
let result = eigentrust(local_trust, pre_trust)?;
for (peer, score) in result.ranking() {
println!("{:<8} {:.4}", names[peer], score);
}
println!("converged after {} iterations", result.iterations());
Ok(())
}