Struct ggrs::SyncTestSession
source · [−]pub struct SyncTestSession<T> where
T: Config, { /* private fields */ }
Expand description
During a SyncTestSession
, GGRS will simulate a rollback every frame and resimulate the last n states, where n is the given check distance.
The resimulated checksums will be compared with the original checksums and report if there was a mismatch.
Implementations
sourceimpl<T: Config> SyncTestSession<T>
impl<T: Config> SyncTestSession<T>
sourcepub fn add_local_input(
&mut self,
player_handle: PlayerHandle,
input: T::Input
) -> Result<(), GGRSError>
pub fn add_local_input(
&mut self,
player_handle: PlayerHandle,
input: T::Input
) -> Result<(), GGRSError>
Registers local input for a player for the current frame. This should be successfully called for every local player before calling advance_frame()
.
If this is called multiple times for the same player before advancing the frame, older given inputs will be overwritten.
In a sync test, all players are considered to be local, so you need to add input for all of them.
Errors
- Returns
InvalidRequest
when the given handle is not valid (i.e. not between 0 and num_players).
sourcepub fn advance_frame(&mut self) -> Result<Vec<GGRSRequest<T>>, GGRSError>
pub fn advance_frame(&mut self) -> Result<Vec<GGRSRequest<T>>, GGRSError>
In a sync test, this will advance the state by a single frame and afterwards rollback check_distance
amount of frames,
resimulate and compare checksums with the original states. Returns an order-sensitive Vec<GGRSRequest>
.
You should fulfill all requests in the exact order they are provided. Failure to do so will cause panics later.
Errors
- Returns
MismatchedChecksumError
if checksums don’t match after resimulation.
sourcepub fn num_players(&self) -> usize
pub fn num_players(&self) -> usize
Returns the number of players this session was constructed with.
sourcepub fn max_prediction(&self) -> usize
pub fn max_prediction(&self) -> usize
Returns the maximum prediction window of a session.
Auto Trait Implementations
impl<T> !RefUnwindSafe for SyncTestSession<T>
impl<T> Send for SyncTestSession<T> where
<T as Config>::Input: Send,
<T as Config>::State: Send,
impl<T> Sync for SyncTestSession<T> where
<T as Config>::Input: Sync,
<T as Config>::State: Send,
impl<T> Unpin for SyncTestSession<T> where
<T as Config>::Input: Unpin,
impl<T> !UnwindSafe for SyncTestSession<T>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more