pub trait EntityPlacer<S, M>: Send + Debugwhere
S: PlanningSolution,
M: Move<S>,{
// Required method
fn get_placements<D: Director<S>>(
&self,
score_director: &D,
) -> Vec<Placement<S, M>>;
// Provided method
fn get_next_placement<D, IsCompleted, ShouldStop>(
&self,
score_director: &D,
is_completed: IsCompleted,
should_stop: ShouldStop,
) -> Option<(Placement<S, M>, u64)>
where D: Director<S>,
IsCompleted: FnMut(&Placement<S, M>) -> bool,
ShouldStop: FnMut() -> bool { ... }
}Expand description
Trait for placing entities during construction.
Entity placers iterate over uninitialized entities and generate candidate moves for each.
§Type Parameters
S- The planning solution typeM- The move type
Required Methods§
Provided Methods§
fn get_next_placement<D, IsCompleted, ShouldStop>( &self, score_director: &D, is_completed: IsCompleted, should_stop: ShouldStop, ) -> Option<(Placement<S, M>, u64)>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".