pub trait DynamicListAccess<S>: Send + Sync {
Show 16 methods
// Required methods
fn entity_class(&self) -> EntityClassId;
fn variable(&self) -> VariableId;
fn entity_count(&self, solution: &S) -> usize;
fn element_count(&self, solution: &S) -> usize;
fn element(&self, solution: &S, element_index: usize) -> Option<usize>;
fn assigned_elements(&self, solution: &S) -> Vec<usize>;
fn len(&self, solution: &S, row: usize) -> usize;
fn get(&self, solution: &S, row: usize, pos: usize) -> Option<usize>;
fn insert(&self, solution: &mut S, row: usize, pos: usize, value: usize);
fn remove(&self, solution: &mut S, row: usize, pos: usize) -> Option<usize>;
// Provided methods
fn capabilities(&self) -> DynamicListAccessCapabilities { ... }
fn set(
&self,
_solution: &mut S,
_row: usize,
_pos: usize,
_value: usize,
) -> bool { ... }
fn replace(
&self,
_solution: &mut S,
_row: usize,
_values: Vec<usize>,
) -> bool { ... }
fn reverse(
&self,
_solution: &mut S,
_row: usize,
_start: usize,
_end: usize,
) -> bool { ... }
fn sublist_remove(
&self,
_solution: &mut S,
_row: usize,
_start: usize,
_end: usize,
) -> Option<Vec<usize>> { ... }
fn sublist_insert(
&self,
_solution: &mut S,
_row: usize,
_pos: usize,
_values: Vec<usize>,
) -> bool { ... }
}Required Methods§
fn entity_class(&self) -> EntityClassId
fn variable(&self) -> VariableId
fn entity_count(&self, solution: &S) -> usize
fn element_count(&self, solution: &S) -> usize
fn element(&self, solution: &S, element_index: usize) -> Option<usize>
fn assigned_elements(&self, solution: &S) -> Vec<usize>
fn len(&self, solution: &S, row: usize) -> usize
fn get(&self, solution: &S, row: usize, pos: usize) -> Option<usize>
fn insert(&self, solution: &mut S, row: usize, pos: usize, value: usize)
fn remove(&self, solution: &mut S, row: usize, pos: usize) -> Option<usize>
Provided Methods§
fn capabilities(&self) -> DynamicListAccessCapabilities
fn set( &self, _solution: &mut S, _row: usize, _pos: usize, _value: usize, ) -> bool
Sourcefn replace(&self, _solution: &mut S, _row: usize, _values: Vec<usize>) -> bool
fn replace(&self, _solution: &mut S, _row: usize, _values: Vec<usize>) -> bool
Replaces one complete row list as one logical mutation.
fn reverse( &self, _solution: &mut S, _row: usize, _start: usize, _end: usize, ) -> bool
fn sublist_remove( &self, _solution: &mut S, _row: usize, _start: usize, _end: usize, ) -> Option<Vec<usize>>
fn sublist_insert( &self, _solution: &mut S, _row: usize, _pos: usize, _values: Vec<usize>, ) -> bool
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".