pub trait EntityExtractor: Send + Sync {
// Required methods
fn count(&self, solution: &dyn Any) -> Option<usize>;
fn get<'a>(
&self,
solution: &'a dyn Any,
index: usize,
) -> Option<&'a dyn Any>;
fn get_mut<'a>(
&self,
solution: &'a mut dyn Any,
index: usize,
) -> Option<&'a mut dyn Any>;
fn entity_refs(&self, solution: &dyn Any) -> Vec<EntityRef>;
fn clone_box(&self) -> Box<dyn EntityExtractor>;
fn clone_entity_boxed(
&self,
solution: &dyn Any,
index: usize,
) -> Option<Box<dyn Any + Send + Sync>>;
fn entity_type_id(&self) -> TypeId;
}Expand description
Trait for extracting entities from a planning solution.
This trait is implemented by closures/functions that can extract entity references from a solution of a specific type.
Required Methods§
fn count(&self, solution: &dyn Any) -> Option<usize>
fn get<'a>(&self, solution: &'a dyn Any, index: usize) -> Option<&'a dyn Any>
fn get_mut<'a>( &self, solution: &'a mut dyn Any, index: usize, ) -> Option<&'a mut dyn Any>
fn entity_refs(&self, solution: &dyn Any) -> Vec<EntityRef>
fn clone_box(&self) -> Box<dyn EntityExtractor>
fn clone_entity_boxed( &self, solution: &dyn Any, index: usize, ) -> Option<Box<dyn Any + Send + Sync>>
fn entity_type_id(&self) -> TypeId
Trait Implementations§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".