conspire 0.7.1

The Rust interface to conspire.
Documentation
pub mod octree;
pub mod quadtree;

use crate::geometry::ntree::pair::Pairing;

#[derive(Clone, Copy)]
pub enum Balancing {
    Strong,
    Weak,
    None,
}

pub trait Balance {
    fn equilibrate(&mut self, balancing: Balancing, pairing: Pairing) -> Result<(), &'static str> {
        let mut balanced = false;
        let mut paired = false;
        while !balanced || !paired {
            balanced = self.balance(balancing);
            paired = self.pair_up(pairing)?;
        }
        Ok(())
    }
    fn balance(&mut self, balancing: Balancing) -> bool;
    fn pair_up(&mut self, pairing: Pairing) -> Result<bool, &'static str>;
}