Struct canrun::core::ReadyState
source · pub struct ReadyState { /* private fields */ }
Expand description
Implementations§
source§impl ReadyState
impl ReadyState
sourcepub fn resolve<T: Unify>(&self, val: &Value<T>) -> Value<T>
pub fn resolve<T: Unify>(&self, val: &Value<T>) -> Value<T>
Recursively resolve a Value
as far as the currently
known variable bindings allow.
See crate::State::resolve
for more details.
sourcepub fn reify<T, R>(&self, value: &T) -> Option<R>where
T: Reify<Reified = R>,
pub fn reify<T, R>(&self, value: &T) -> Option<R>where T: Reify<Reified = R>,
Attempt to reify the value of a logic
variable in a ReadyState
.
Example:
use canrun::{State, StateIterator, Value, LVar};
let x = LVar::new();
let state = State::new()
.unify(&x.into(), &Value::new(1));
let results: Vec<_> = state.into_states()
.filter_map(|s| s.ready())
.map(|resolved| resolved.reify(&x))
.collect();
assert_eq!(results, vec![Some(1)]);
Trait Implementations§
source§impl Clone for ReadyState
impl Clone for ReadyState
source§fn clone(&self) -> ReadyState
fn clone(&self) -> ReadyState
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ReadyState
impl !Send for ReadyState
impl !Sync for ReadyState
impl Unpin for ReadyState
impl !UnwindSafe for ReadyState
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