#[non_exhaustive]pub enum LawCheck {
Verified,
SemanticsVerified,
Unpinned,
VerifiedUnderPrevious,
SemanticsPrevious,
}Expand description
What PhysicsWorld::restore_world_checked could verify about the rule
identifiers of a blob it accepted.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Verified
Version 4: the header semantics_id equals this binary’s
crate::PHYSICS_SEMANTICS_ID, and the header law_id equals the
identifier the caller passed.
SemanticsVerified
Version 4: the header semantics_id equals this binary’s
crate::PHYSICS_SEMANTICS_ID; the caller passed no identifier, so
the header law_id was not compared with anything.
Unpinned
Version 1 to 3: the blob carries no identifiers, so neither could be verified. The blob is accepted; a caller that requires verification can refuse it on this value.
VerifiedUnderPrevious
Version 4 written under an earlier identifier listed in
crate::PREVIOUS_PHYSICS_SEMANTICS_IDS (the stepping bits are the
same): the identifier the caller passed is this target’s own
PhysicsWorld::law_id under crate::PHYSICS_SEMANTICS_ID, and
the header law_id equals the target’s law_id under the earlier
identifier. PhysicsWorld::world_snapshot_ids gives that
identifier.
SemanticsPrevious
Version 4 written under an earlier identifier listed in
crate::PREVIOUS_PHYSICS_SEMANTICS_IDS; the caller passed no
identifier, so the header law_id was not compared with anything.
PhysicsWorld::world_snapshot_ids gives the identifier.
Trait Implementations§
impl Copy for LawCheck
impl Eq for LawCheck
impl StructuralPartialEq for LawCheck
Auto Trait Implementations§
impl Freeze for LawCheck
impl RefUnwindSafe for LawCheck
impl Send for LawCheck
impl Sync for LawCheck
impl Unpin for LawCheck
impl UnsafeUnpin for LawCheck
impl UnwindSafe for LawCheck
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more