pub struct MultiSimulation<Info: SimulationInfo> { /* private fields */ }
Expand description
A simulation with support for multiple states.
Implementations§
Source§impl<Info: SimulationInfo> MultiSimulation<Info>
impl<Info: SimulationInfo> MultiSimulation<Info>
Sourcepub fn new<T: Into<Info>>(info: T) -> Self
pub fn new<T: Into<Info>>(info: T) -> Self
Creates a new MultiSimulation
from the provided info
with no states.
Sourcepub fn add_simulation(&mut self) -> usize
pub fn add_simulation(&mut self) -> usize
Adds a new simulation state to the simulation and returns its index.
Sourcepub fn add_simulation_from_data(
&mut self,
data: Info::LoadData,
) -> Result<usize, Info::StateLoadingError>
pub fn add_simulation_from_data( &mut self, data: Info::LoadData, ) -> Result<usize, Info::StateLoadingError>
Adds a new simulation state loaded from the provided data
to the simulation and returns its index.
Sourcepub fn get(&self, index: usize) -> Option<SimulationBorrow<'_, Info>>
pub fn get(&self, index: usize) -> Option<SimulationBorrow<'_, Info>>
Retrieves an immutable borrow of the simulation at the specified index.
Sourcepub fn get_mut(&mut self, index: usize) -> Option<SimulationBorrowMut<'_, Info>>
pub fn get_mut(&mut self, index: usize) -> Option<SimulationBorrowMut<'_, Info>>
Retrieves a mutable borrow of the simulation at the specified index.
Sourcepub fn states_mut(&mut self) -> &mut [Info::State]
pub fn states_mut(&mut self) -> &mut [Info::State]
Get mutable access to all simulation states.
Trait Implementations§
Source§impl<Info: SimulationInfo + Clone> Clone for MultiSimulation<Info>
impl<Info: SimulationInfo + Clone> Clone for MultiSimulation<Info>
Source§impl<Info: SimulationInfo> Deref for MultiSimulation<Info>
impl<Info: SimulationInfo> Deref for MultiSimulation<Info>
Source§impl<Info: EditableSimulationInfo> Editable for MultiSimulation<Info>
impl<Info: EditableSimulationInfo> Editable for MultiSimulation<Info>
Source§type Edit<'a> = MultiSimulationEdit<'a, Info>
where
Self: 'a
type Edit<'a> = MultiSimulationEdit<'a, Info> where Self: 'a
The type used for safe edits and refreshing the state.
Source§fn edit(&mut self) -> MultiSimulationEdit<'_, Info>
fn edit(&mut self) -> MultiSimulationEdit<'_, Info>
Creates a type which allows safe edits to the info without invalidating the states,
and automatically refreshes the states when the edit type goes out of scope.
Source§impl<'a, Info: SimulationInfo> IntoIterator for &'a MultiSimulation<Info>
impl<'a, Info: SimulationInfo> IntoIterator for &'a MultiSimulation<Info>
Source§type Item = GenericSimulationBorrow<'a, Info, &'a <Info as SimulationInfo>::State>
type Item = GenericSimulationBorrow<'a, Info, &'a <Info as SimulationInfo>::State>
The type of the elements being iterated over.
Source§impl<'a, Info: SimulationInfo> IntoIterator for &'a mut MultiSimulation<Info>
impl<'a, Info: SimulationInfo> IntoIterator for &'a mut MultiSimulation<Info>
Source§type Item = GenericSimulationBorrow<'a, Info, &'a mut <Info as SimulationInfo>::State>
type Item = GenericSimulationBorrow<'a, Info, &'a mut <Info as SimulationInfo>::State>
The type of the elements being iterated over.
Auto Trait Implementations§
impl<Info> Freeze for MultiSimulation<Info>where
Info: Freeze,
impl<Info> RefUnwindSafe for MultiSimulation<Info>
impl<Info> Send for MultiSimulation<Info>
impl<Info> Sync for MultiSimulation<Info>
impl<Info> Unpin for MultiSimulation<Info>
impl<Info> UnwindSafe for MultiSimulation<Info>
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