pub struct Prophecy<T> { /* private fields */ }Expand description
A general-purpose prophecy variable.
A prophecy variable is allocated via Prophecy::new
and resolved to a definitive value via Prophecy::resolve.
In contrast to the similar ProphecyGhost, this does not require us to mark the
value() as verifier::prophetic, which can make it easier to use.
However, it does not allow dependent resolutions, and it can only resolve to values
which are computed purely in exec-mode (as enforced by the T: Structural bound).
See the module level documentation for a detailed comparison with the rationale
for these trade-offs.
Implementations§
Source§impl<T> Prophecy<T>where
T: Structural,
impl<T> Prophecy<T>where
T: Structural,
Auto Trait Implementations§
impl<T> Freeze for Prophecy<T>
impl<T> RefUnwindSafe for Prophecy<T>where
T: RefUnwindSafe,
impl<T> Send for Prophecy<T>
impl<T> Sync for Prophecy<T>
impl<T> Unpin for Prophecy<T>where
T: Unpin,
impl<T> UnsafeUnpin for Prophecy<T>
impl<T> UnwindSafe for Prophecy<T>where
T: UnwindSafe,
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
Source§impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
Source§impl<T, VERUS_SPEC__A> TryFromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryFrom<T>,
impl<T, VERUS_SPEC__A> TryFromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryFrom<T>,
Source§exec fn obeys_try_from_spec() -> bool
exec fn obeys_try_from_spec() -> bool
Source§impl<T, VERUS_SPEC__A> TryIntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryInto<T>,
impl<T, VERUS_SPEC__A> TryIntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryInto<T>,
Source§exec fn obeys_try_into_spec() -> bool
exec fn obeys_try_into_spec() -> bool
Source§impl<T, U> TryIntoSpecImpl<U> for Twhere
U: TryFrom<T>,
impl<T, U> TryIntoSpecImpl<U> for Twhere
U: TryFrom<T>,
Source§open spec fn obeys_try_into_spec() -> bool
open spec fn obeys_try_into_spec() -> bool
{ <U as TryFromSpec<Self>>::obeys_try_from_spec() }