view examples/shared.rs @ 102:dc425adf42b3

Add an example that uses SharedCache This will catch the compile error on `cargo test`.
author Risto Saarelma <risto.saarelma@iki.fi>
date Fri, 04 Aug 2023 13:06:15 +0300
parents
children
line wrap: on
line source

use memoize::memoize;

#[memoize(SharedCache)]
fn hello(arg: String, arg2: usize) -> bool {
    println!("{} => {}", arg, arg2);
    arg.len() % 2 == arg2
}

fn main() {
    // `hello` is only called once here.
    assert!(!hello("World".to_string(), 0));
    assert!(!hello("World".to_string(), 0));
    // Sometimes one might need the original function.
    assert!(!memoized_original_hello("World".to_string(), 0));
    memoized_flush_hello();
}