pub trait RuntimeExtensionRegistry<S, V, DM, IDM>where
S: PlanningSolution,{
type Phase: CustomSearchPhase<S>;
// Required methods
fn policy(&self) -> RuntimeExtensionPolicy;
fn contains_custom(&self, name: &str) -> bool;
fn instantiate_custom(
&self,
name: &str,
context: &SearchContext<S, V, DM, IDM>,
) -> Option<Self::Phase>;
fn contains_partitioned(&self, name: &str) -> bool;
fn instantiate_partitioned(
&self,
name: &str,
config: &PartitionedSearchConfig,
context: &SearchContext<S, V, DM, IDM>,
) -> Option<Self::Phase>;
}Expand description
Recursive, concrete extension registry owned by a compiled runtime graph.
Compilation consults only the registration predicates. Instantiation is
deferred to the graph executor, which creates fresh concrete phases from
its frozen SearchContext once for each solve.
Required Associated Types§
type Phase: CustomSearchPhase<S>
Required Methods§
fn policy(&self) -> RuntimeExtensionPolicy
fn contains_custom(&self, name: &str) -> bool
fn instantiate_custom( &self, name: &str, context: &SearchContext<S, V, DM, IDM>, ) -> Option<Self::Phase>
fn contains_partitioned(&self, name: &str) -> bool
fn instantiate_partitioned( &self, name: &str, config: &PartitionedSearchConfig, context: &SearchContext<S, V, DM, IDM>, ) -> Option<Self::Phase>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".