pub struct EntityDescriptor {
pub type_name: &'static str,
pub type_id: TypeId,
pub logical_id: Option<EntityClassId>,
pub solution_field: &'static str,
pub is_collection: bool,
pub variable_descriptors: Vec<VariableDescriptor>,
pub extractor: Option<Box<dyn EntityExtractor>>,
pub id_field: Option<&'static str>,
pub pin_field: Option<&'static str>,
/* private fields */
}Expand description
Describes a planning entity type at runtime.
Fields§
§type_name: &'static str§type_id: TypeId§logical_id: Option<EntityClassId>§solution_field: &'static str§is_collection: bool§variable_descriptors: Vec<VariableDescriptor>§extractor: Option<Box<dyn EntityExtractor>>§id_field: Option<&'static str>§pin_field: Option<&'static str>Implementations§
Source§impl EntityDescriptor
impl EntityDescriptor
pub fn new( type_name: &'static str, type_id: TypeId, solution_field: &'static str, ) -> Self
pub fn with_extractor(self, extractor: Box<dyn EntityExtractor>) -> Self
pub fn with_logical_id(self, logical_id: EntityClassId) -> Self
pub fn with_variable(self, descriptor: VariableDescriptor) -> Self
pub fn with_id_field(self, field: &'static str) -> Self
pub fn with_pin_field(self, field: &'static str) -> Self
Sourcepub fn with_pin_predicate(self, predicate: fn(&dyn Any) -> bool) -> Self
pub fn with_pin_predicate(self, predicate: fn(&dyn Any) -> bool) -> Self
Supplies the entity-level pin predicate for a manually assembled descriptor.
Sourcepub fn is_pinned(&self, solution: &dyn Any, index: usize) -> bool
pub fn is_pinned(&self, solution: &dyn Any, index: usize) -> bool
Returns whether this entity is pinned. Descriptors without a predicate are unrestricted.
pub fn has_pin_predicate(&self) -> bool
pub fn genuine_variable_descriptors( &self, ) -> impl Iterator<Item = &VariableDescriptor>
pub fn shadow_variable_descriptors( &self, ) -> impl Iterator<Item = &VariableDescriptor>
pub fn find_variable(&self, name: &str) -> Option<&VariableDescriptor>
pub fn has_genuine_variables(&self) -> bool
pub fn has_extractor(&self) -> bool
pub fn entity_count(&self, solution: &dyn Any) -> Option<usize>
pub fn get_entity<'a>( &self, solution: &'a dyn Any, index: usize, ) -> Option<&'a dyn Any>
pub fn get_entity_mut<'a>( &self, solution: &'a mut dyn Any, index: usize, ) -> Option<&'a mut dyn Any>
pub fn entity_refs(&self, solution: &dyn Any) -> Vec<EntityRef>
pub fn for_each_entity<F>(&self, solution: &dyn Any, f: F) -> Option<()>
pub fn for_each_entity_mut<F>(&self, solution: &mut dyn Any, f: F) -> Option<()>
Trait Implementations§
Source§impl Clone for EntityDescriptor
impl Clone for EntityDescriptor
Auto Trait Implementations§
impl !RefUnwindSafe for EntityDescriptor
impl !UnwindSafe for EntityDescriptor
impl Freeze for EntityDescriptor
impl Send for EntityDescriptor
impl Sync for EntityDescriptor
impl Unpin for EntityDescriptor
impl UnsafeUnpin for EntityDescriptor
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