Struct LazySolution

Source
pub struct LazySolution<'a, TNode: Debug + Eq + Hash + 'a, TError> {
    pub bounds: Bounds<TNode>,
    pub next_to_search: Box<dyn Iterator<Item = Result<TNode, TError>> + 'a>,
}
Expand description

The results of the search so far. The search is complete if next_to_search is empty.

Fields§

§bounds: Bounds<TNode>

The bounds of the search so far.

§next_to_search: Box<dyn Iterator<Item = Result<TNode, TError>> + 'a>

The next nodes to search in a suggested order. Normally, you would only consume the first node in this iterator and then call Search::notify with the result. However, if you want to parallelize or speculate on further nodes, you can consume more nodes from this iterator.

This will be empty when the bounds are as tight as possible, i.e. the search is complete.

Implementations§

Source§

impl<'a, TNode: Debug + Eq + Hash + 'a, TError> LazySolution<'a, TNode, TError>

Source

pub fn into_eager(self) -> Result<EagerSolution<TNode>, TError>

Convenience function to call EagerSolution::from on this LazySolution.

Auto Trait Implementations§

§

impl<'a, TNode, TError> Freeze for LazySolution<'a, TNode, TError>

§

impl<'a, TNode, TError> !RefUnwindSafe for LazySolution<'a, TNode, TError>

§

impl<'a, TNode, TError> !Send for LazySolution<'a, TNode, TError>

§

impl<'a, TNode, TError> !Sync for LazySolution<'a, TNode, TError>

§

impl<'a, TNode, TError> Unpin for LazySolution<'a, TNode, TError>
where TNode: Unpin,

§

impl<'a, TNode, TError> !UnwindSafe for LazySolution<'a, TNode, TError>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more