Skip to main content

ListVariableEntity

Trait ListVariableEntity 

Source
pub trait ListVariableEntity<S> {
    type CrossDistanceMeter: CrossEntityDistanceMeter<S> + Clone + Debug;
    type IntraDistanceMeter: CrossEntityDistanceMeter<S> + Clone + Debug + 'static;

    const HAS_STOCK_LIST_VARIABLE: bool;
    const STOCK_LIST_VARIABLE_NAME: &'static str;
    const STOCK_LIST_ELEMENT_SOURCE: Option<&'static str>;

    // Required methods
    fn list_field(entity: &Self) -> &[usize];
    fn list_field_mut(entity: &mut Self) -> &mut Vec<usize>;
    fn list_metadata(    ) -> ListVariableMetadata<S, Self::CrossDistanceMeter, Self::IntraDistanceMeter>;
}
Expand description

Hidden trait implemented by #[planning_entity] for list-stock entities so #[planning_solution] can consume typed list metadata without re-stating it on the solution.

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn list_field(entity: &Self) -> &[usize]

Source

fn list_field_mut(entity: &mut Self) -> &mut Vec<usize>

Source

fn list_metadata() -> ListVariableMetadata<S, Self::CrossDistanceMeter, Self::IntraDistanceMeter>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§