pub trait GetConditions { fn conditions(&self) -> Conditions; } #[derive(Debug, Default)] pub struct Conditions { pub maybe_net: Option, pub maybe_region: Option, pub maybe_layer: Option, } pub trait AccessRules { fn clearance(&self, conditions1: &Conditions, conditions2: &Conditions) -> f64; fn largest_clearance(&self, net: Option) -> f64; }