Struct FixedPointStack

Source
pub struct FixedPointStack<Input, Output> { /* private fields */ }

Implementations§

Source§

impl<Input, Output> FixedPointStack<Input, Output>
where Input: Value, Output: Value,

Source

pub fn search(&mut self, input: &Input) -> Option<Output>

Search backwards through the stack, looking for the given input.

If it is found, return Some with the current outputs, and mark it as needing fixed point iteration.

If not, return None.

The fixed-point mark is returned when the stack is popped and is used as part of the fixed point algorithm.

Source

pub fn push(&mut self, input: &Input, output: Output)

Push an entry onto the stack, indicating it is currently being evaluated. There must not already be an entry for input.

Source

pub fn update_output(&mut self, input: &Input, output: Output) -> bool

Add outputs to the top-most stack entry, which must be for input. Returns true if another iteration is needed before reaching a fixed point.

Source

pub fn pop(&mut self, input: &Input) -> Output

Pops the top entry from the stack, returning the saved outputs.

Trait Implementations§

Source§

impl<Input, Output> Default for FixedPointStack<Input, Output>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<Input, Output> Freeze for FixedPointStack<Input, Output>

§

impl<Input, Output> RefUnwindSafe for FixedPointStack<Input, Output>
where Input: RefUnwindSafe, Output: RefUnwindSafe,

§

impl<Input, Output> Send for FixedPointStack<Input, Output>
where Input: Send, Output: Send,

§

impl<Input, Output> Sync for FixedPointStack<Input, Output>
where Input: Sync, Output: Sync,

§

impl<Input, Output> Unpin for FixedPointStack<Input, Output>
where Input: Unpin, Output: Unpin,

§

impl<Input, Output> UnwindSafe for FixedPointStack<Input, Output>
where Input: UnwindSafe, Output: UnwindSafe,

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<U> Downcast for U

Source§

fn downcast<T>(&self) -> Option<T>
where T: DowncastFrom<U>,

Source§

fn is_a<T>(&self) -> bool
where T: DowncastFrom<Self>,

Source§

impl<T, U> DowncastFrom<T> for U
where T: DowncastTo<U>,

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<A> To for A

Source§

fn to<T>(&self) -> T
where A: Upcast<T>,

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, U> UpcastFrom<&T> for U
where T: Clone + Upcast<U>,

Source§

fn upcast_from(term: &T) -> U

Source§

impl<T> UpcastFrom<()> for T
where T: Default,

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