pub trait PlanningModelSupport:
PlanningSolution
+ Sized
+ 'static {
// Required methods
fn attach_descriptor_hooks(descriptor: &mut SolutionDescriptor);
fn attach_runtime_scalar_hooks(
slot: ScalarVariableSlot<Self>,
) -> ScalarVariableSlot<Self>;
fn validate_model(descriptor: &SolutionDescriptor);
fn update_entity_shadows(
solution: &mut Self,
descriptor_index: usize,
entity_index: usize,
) -> bool;
fn update_all_shadows(solution: &mut Self) -> bool;
// Provided methods
fn attach_runtime_list_hooks<DM, IDM>(
slot: ListVariableSlot<Self, usize, DM, IDM>,
) -> ListVariableSlot<Self, usize, DM, IDM> { ... }
fn list_element_owner(
_entity_type_name: &'static str,
_variable_name: &'static str,
_solution: &Self,
_element: &usize,
) -> Option<usize> { ... }
fn attach_scalar_groups(
_scalar_variables: &[ScalarVariableSlot<Self>],
) -> Vec<ScalarGroupBinding<Self>> { ... }
}Required Methods§
fn attach_descriptor_hooks(descriptor: &mut SolutionDescriptor)
fn attach_runtime_scalar_hooks( slot: ScalarVariableSlot<Self>, ) -> ScalarVariableSlot<Self>
fn validate_model(descriptor: &SolutionDescriptor)
fn update_entity_shadows( solution: &mut Self, descriptor_index: usize, entity_index: usize, ) -> bool
fn update_all_shadows(solution: &mut Self) -> bool
Provided Methods§
fn attach_runtime_list_hooks<DM, IDM>( slot: ListVariableSlot<Self, usize, DM, IDM>, ) -> ListVariableSlot<Self, usize, DM, IDM>
fn list_element_owner( _entity_type_name: &'static str, _variable_name: &'static str, _solution: &Self, _element: &usize, ) -> Option<usize>
fn attach_scalar_groups( _scalar_variables: &[ScalarVariableSlot<Self>], ) -> Vec<ScalarGroupBinding<Self>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".