use memoize::memoize;
use std::thread;
use std::time::{Duration, Instant};
#[allow(dead_code)]
#[derive(Debug, Clone)]
struct ComplexStruct {
s: String,
b: bool,
i: Instant,
}
#[cfg(feature = "full")]
#[memoize(TimeToLive: Duration::from_secs(2), Capacity: 123)]
fn hello(key: String) -> ComplexStruct {
println!("hello: {}", key);
ComplexStruct {
s: key,
b: false,
i: Instant::now(),
}
}
fn main() {
#[cfg(feature = "full")]
{
println!("result: {:?}", hello("ABC".to_string()));
println!("result: {:?}", hello("DEF".to_string()));
println!("result: {:?}", hello("ABC".to_string())); thread::sleep(core::time::Duration::from_millis(2100));
println!("result: {:?}", hello("ABC".to_string()));
println!("result: {:?}", hello("DEF".to_string()));
println!("result: {:?}", hello("ABC".to_string())); memoized_flush_hello();
println!("result: {:?}", hello("EFG".to_string()));
println!("result: {:?}", hello("ABC".to_string())); println!("result: {:?}", hello("EFG".to_string())); println!("result: {:?}", hello("ABC".to_string())); println!("result: {:?}", memoized_original_hello("ABC".to_string()));
}
}