pub struct Any { /* private fields */ }
Expand description
A Goal
that yields a state for every successful
sub-goal.
See the any!
macro for a more ergonomic way to
construct static Any
goals.
Also implements From<Vec<Rc<dyn Goal>>>
and FromIterator<Rc<dyn Goal>>
/
use canrun::{any, unify, LVar, Query};
use canrun::goals::{Goal, Any};
use std::rc::Rc;
let x = LVar::new();
let goals: Vec<Rc<dyn Goal>> = vec![
Rc::new(unify(x, 1)),
Rc::new(unify(x, 2)),
Rc::new(unify(x, 3)),
];
let goal = Any::from(goals);
let result: Vec<_> = goal.query(x).collect();
assert_eq!(result, vec![1, 2, 3])
Performs copy-assignment from
source
.
Read more
Formats the value using the given formatter.
Read more
Given a
State
, return an iterator of states that result from the
fork operation.
Converts to this type from the input type.
Apply the
Goal
to a state, returning
Some
if the state is still valid, or
None
.
Read more
Immutably borrows from an owned value.
Read more
Mutably borrows from an owned value.
Read more
Returns the argument unchanged.
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning.
Read more
Uses borrowed data to replace owned data, usually by cloning.
Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.