Struct Memo

Source
pub struct Memo<C, F> { /* private fields */ }
Expand description

The synchronized implementation of FnMemo.

Implementations§

Source§

impl<C: Cache, F> Memo<C, F>

Source

pub fn new(f: F) -> Self

Constructs a Memo using C as cache, caching function f.

Trait Implementations§

Source§

impl<C: Cache, F: RecurFn<C::Arg, C::Output>> FnMemo<<C as Cache>::Arg, <C as Cache>::Output> for Memo<C, F>
where C::Arg: Clone, C::Output: Clone,

Source§

fn call(&self, arg: C::Arg) -> C::Output

Calls the function. If the result of arg is already cached, it will return the cached result, otherwise, it calculates the result and adds it to the cache.
Source§

fn clear_cache(&self)

Clears the cache.

Auto Trait Implementations§

§

impl<C, F> Freeze for Memo<C, F>
where C: Freeze, F: Freeze,

§

impl<C, F> RefUnwindSafe for Memo<C, F>

§

impl<C, F> Send for Memo<C, F>
where C: Send, F: Send,

§

impl<C, F> Sync for Memo<C, F>
where C: Sync, F: Sync,

§

impl<C, F> Unpin for Memo<C, F>
where C: Unpin, F: Unpin,

§

impl<C, F> UnwindSafe for Memo<C, F>
where C: UnwindSafe, F: 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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Erased for T