pub enum AutoFilterHeuristic {
Greedy,
BruteForce,
SplitCells,
OnlyOneBorder,
}
Variants§
Greedy
Find the road with the most shortcuts that can be closed without creating a disconnected cell, and filter it.
There’s a vague intuition or observation that the “bottleneck” will have the most shortcuts going through it, so tackle the worst problem first.
BruteForce
Try adding one filter to every possible road, counting the shortcuts after. Choose the next step by the least resulting shortcuts.
SplitCells
Find one filter that splits a cell, maximizing the number of streets in each new cell.
OnlyOneBorder
Per cell, close all borders except for one. This doesn’t affect connectivity, but prevents all shortcuts.
Implementations§
Trait Implementations§
Source§impl Clone for AutoFilterHeuristic
impl Clone for AutoFilterHeuristic
Source§fn clone(&self) -> AutoFilterHeuristic
fn clone(&self) -> AutoFilterHeuristic
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for AutoFilterHeuristic
impl Debug for AutoFilterHeuristic
Source§impl PartialEq for AutoFilterHeuristic
impl PartialEq for AutoFilterHeuristic
impl Copy for AutoFilterHeuristic
impl StructuralPartialEq for AutoFilterHeuristic
Auto Trait Implementations§
impl Freeze for AutoFilterHeuristic
impl RefUnwindSafe for AutoFilterHeuristic
impl Send for AutoFilterHeuristic
impl Sync for AutoFilterHeuristic
impl Unpin for AutoFilterHeuristic
impl UnwindSafe for AutoFilterHeuristic
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.